我试图创建一个动态下拉列表 . 我已经设置好了,所以我有一个 Test No.
的列表和它旁边的星期几 . 它看起来像这样:
现在我想要的是当我在其中一个列表中添加相同的数字时,我希望下拉列表只给出我尚未用于该数字的可用天数 .
即对于 1234
,New下的下降应该是周四,周五,周六,周日,即 5678
新下的下降应该有周一,周三,周四,周六,太阳即为 9012
新下的下降应该有星期六,周六,太阳
我有一个命名范围,一周7天,我可以使用数据验证使该列表成为放置选项,但我希望它是动态的,只给我那些 Test No
尚未使用的选项 .
可以这样做吗?
3 回答
假设您的数据位于列A:B中,其中row1是 Headers 行,并且您有一个名为 Days 的命名范围,则右键单击工作表选项卡 - >查看代码并将下面给出的代码粘贴到打开的代码窗口中 - >保存工作簿作为启用宏的工作簿 .
因此,一旦您在B列中选择了一个单元格,代码就会添加一个下拉列表,不包括为特定测试编号选择的日期 . A栏中的相应单元格.
您可以在工作表的代码模块中处理
Worksheet_SelectionChange
事件以更改验证列表 . 需要进行一些检查以查看新选择的单元格是否是您要验证的单元格之一;即列B,列A中的标识符等 . 以下例程中的检查符合您的示例数据 .您可以使用依赖下拉列表
创建列表周一 - 周日定义名称 wkday 例如
选择星期二 - 星期日和定义名称 Mon
选择周三 - 周日和定义名称 Tue
选择星期四 - 星期日和定义名称 Wed
选择周五 - 周日和定义名称 Thu
选择周六 - 周日和定义名称 Fri
选择星期日并定义名称 Sat
您可以选择需要下拉列表的所有单元格:
从下面的Cell B2开始,在Source write中创建数据验证,List:
=IF(OR(B1="",B1="Day"),wkday,INDIRECT(B1))