【问题标题】:Excel Update Dynamic Data Validation List Automatically?Excel 自动更新动态数据验证列表?
【发布时间】:2018-03-03 10:10:38
【问题描述】:

我有一个关于音符的简单电子表格,它执行以下操作:

首先,用户从下拉菜单中选择是否显示升号或降号。这会触发电子表格中的其他单元格以升号或降号显示半音阶。见下文。

这很好用。然后另一个单元格对下拉菜单使用数据验证,可以在其中选择其中一个注释。见下文。

这也可以正常工作除了,如果单元格 B2 发生更改,单元格 D2 不会自动更新到数据验证列表中的相应单元格。换句话说,如果单元格 B2 发生更改,则单元格 D2 可能包含未出现在注释列表中的文本。请参阅下面的可视化。

在上图中,单元格 B2 更改为“Sharps”,它正确更新了笔记列表。但是,由于单元格 D2 已经选择了一个平音符(在本例中为 Db),因此单元格 D2 不会自动更新为相应的升音符(在本例中为 C#)。

说了这么多,我的问题是:如果数据验证列表发生变化,是否可以让单元格 D2 自动更新为笔记数据验证列表中的相应值? (最好不使用 VBA)

【问题讨论】:

  • 您是如何设置依赖数据验证的?
  • @RonRosenfeld 数据验证,允许:列表,来源:$B$6:$B$17
  • D2中的列表呢?
  • 我的评论指的是 D2 中的列表
  • 当然。对不起。为了防止列表不同步,如果 D2 中有条目,您可以通过更改公式来防止更改 B2;或者如果 B2 发生更改,您可以使用 VBA 清除 D2。

标签: excel validation dynamic


【解决方案1】:

为了防止在 D2 中有条目时更改 B2,可以通过更改 DV 公式以返回错误来完成,或者更简单地说,当 D2 为非空白时,FALSE。您应该添加一条解释性消息,以免用户认为系统已冻结。

例如:

Source下的公式中,

F1:  Sharps
G1:  Flats

您可能需要实际清除 D2 才能输入公式。

D2不明确时,可以选择B2,但不能更改。

这只是显示选择单元格时可能显示的消息。

如果您希望 B2 中的条目在您从 Sharps 更改为 Flats(反之亦然)时更改为相应的音符,则需要 VBA。

【讨论】:

  • 感谢罗恩的回答。这并不理想,因为它不允许单元格 B2 更改。但是,由于您对此提供了所有帮助,我仍然将您的答案标记为更正并给了 +1。
  • @Peter 没有 VBA,不知道还有什么。用VBA事件代码,当然可行。谢谢。
猜你喜欢
  • 2021-02-24
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多