重置 excel 中的相关下拉列表

Reset dependent drop down lists in excel

美好的一天, 我有一个 excel 关于如何重置相关下拉列表的问题。 我已经使用 VBA 重置一个下拉列表,使用以下内容:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H" Then
    Range("I14").Value = "Please select..."
End If
End Sub

我如何更改它以使其适用于一定范围的行?就像如果 H14:H50 之间的任意一行的下拉菜单发生变化,那么 I14:50 范围内同一行的依赖下拉菜单将被重置并显示“请 select... “

一定有更好的方法:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H" Then
    Range("I14").Value = "Please select..."    
End If
If Target.Address = "$H" Then
    Range("I15").Value = "Please select..."
End If

If Target.Address = "$H" Then
    Range("I16").Value = "Please select..."        
End If
End Sub

那就是 Intersect 方法。这可以检查目标是否在您的监控范围内。相交 returns 两个范围之间的共享区域,因此您只需要检查该范围是否存在以查明 Target 是否在 H14:H50.

你会这样检查:

If Not Intersect(Target,Range("H14:H50")) Is Nothing then
    Cells(Target.Row, 9) = "Please Select..." 
End If

蹒跚学步的孩子的答案确实是您想要的,因为这是更好的方法,但是对于您想要的方式,您首先需要检查列然后是行。

所以:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 8 Then 'Column H
    If Target.Row >= 14 And Target.Row <= 50 Then
        Cells(Target.Row, 9) = "Please Select..."
    End If
End If

End Sub