我根本不懂 VBA,但正在从各种在线教程中拼凑一些花絮。我可以采纳你的建议,因为我根本无法得到我需要的结果。在下面的示例中,单元格 A10 包含一个主下拉列表(如果重要的话,A10-E10 是合并单元格,以便显示每个下拉选项的完整长度)。当选择“我们认为您存入的支票可能因以下原因而无法付款”时,A12 中会出现一个相关下拉列表,也必须从中进行选择。我正在尝试编写一个代码,当在 A10 中选择任何其他选项时,该代码将清除 A12 的内容。出于同样的原因,A12-E12 也是合并单元格。
我尝试了一些变体,但我尝试的基本代码如下。您对我的代码哪里出了问题有什么建议吗?我收到运行时错误 1004“我们无法对合并单元格执行此操作。”如果您能提供有关纠正此问题的指导,我将不胜感激。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("$A$10") <> "We believe a check you deposited may not be paid for the following reason:" Then
Range("$A$12").ClearContents
End If
End Sub
当 A10 的选择不等于“我们认为您存入的支票可能因以下原因而无法支付时,它会清除单元格 A12:”
您需要清除整个合并范围。
请注意,修改工作表将导致更改事件在您当前拥有的无限循环中触发。标准方法是使用
Application.EnableEvents = False
禁用事件。这里,建议先测试A10
是否被改变(使用Intersect
),这也可以防止无限循环。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.Range("A10"), Target) Is Nothing Then Exit Sub
If Me.Range("A10") <> "We believe a check you deposited may not be paid for the following reason:" Then
Me.Range("A12:E12").ClearContents
End If
End Sub