重置 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
美好的一天, 我有一个 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