我在第一列中有一个父下拉框,在第J列中有一个基于第一列更改的子下拉框。
如果第I列发生变化,我希望第j列重置而不是保留其原始值。
我的代码适用于我的第一行
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "I2" Then Range("J2").ClearContents
End Sub
如何让它循环遍历每一行?
非常感谢, 詹姆斯
答案 0 :(得分:2)
你的意思是每当I中的值被改变时你想要清除J中的相应值吗?最好限制在特定的I / J范围内 - 这将完成整个专栏。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.column = 9 Then target.offset(,1).ClearContents
End Sub
答案 1 :(得分:1)
我要检查Target
范围是否与列I
相交,然后遍历更改范围内的所有单元格。您可以使用循环内的.Row
属性清除相应的单元格:
Private Sub Worksheet_Change(ByVal Target As Range)
'Did something change in column I?
If Intersect(Target, Me.Range("I:I")) Is Nothing Then
Exit Sub
End If
Dim test As Range
'Loop through all of the changed cells.
For Each test In Target
'If the cell is in column I...
If test.Column = 9 Then
'...clear column J in that row.
Me.Cells(test.Row, 10).ClearContents
End If
Next
End Sub