首页 > 解决方案 > 根据vba中的相邻单元格值更改下拉列表项

问题描述

我有一个 excel 表,其中有一个包含两列和可变行数的表。其中一些行将被填充,而一些则为空。B 列包含一些值,A 列在每个单元格中都有一个下拉列表。

我希望如果 B 列单元格具有某些值,则相邻列 A 单元格应在下拉列表中显示 3 个选项 - 修改、添加、删除,当 B 列单元格为空时,相邻列 A 单元格应仅显示一个选项它的下拉列表 - 添加。可以使用 VBA 或 excel 公式完成吗?

请不要将其与基于下拉选择更改单元格值混淆。恰恰相反。

标签: excelvba

解决方案


没有 VBA 的解决方案

您可以使用Excel的数据验证工具执行此操作:

首先,您需要将所有下拉选项(添加、修改、删除)添加到一个范围内。这可以在同一个工作表中或任何其他工作表中。对于我的示例,我将它们放入F1:F3同一工作表的范围内。

然后选择整个 A 列并从功能区菜单 › 数据 › 数据工具 › 数据验证添加数据验证:
在此处输入图像描述

Settings选项卡上的Allow下,选择List并在Source处使用以下公式:

=IF(B1<>"",$F$1:$F$3,$F$1)

请注意,第一个范围$F$1:$F$3指向 ADD、MODIFY、DELETE,第二个范围$F$1仅指向 ADD!


推荐阅读