在下面的示例中,单元格 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