父列表更改时清除依赖下拉列表

问题描述 投票:0回答:1

在下面的示例中,单元格 A10 包含一个主下拉列表(A10-E10 是合并单元格,用于显示每个下拉选项的完整长度)。

选择“我们认为您存入的支票可能因以下原因而无法付款”时,A12 中会出现一个相关下拉列表,也必须从中进行选择。

当在A10中选择任何其他选项时,我试图清除A12的内容。出于同样的原因,A12-E12 也是合并单元格。

enter image description here

我尝试了一些变体,但基本代码如下。

我明白了

运行时错误 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:”

excel vba validation drop-down-menu range
1个回答
1
投票

您需要清除整个合并范围。

请注意,修改工作表将导致更改事件在您当前拥有的无限循环中触发。标准方法是使用

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
© www.soinside.com 2019 - 2024. All rights reserved.