我如何循环If / Then语句

我在第一列中有一个父项下拉框,在第J列中有一个子项下拉框,根据第一列进行了更改。

如果列I改变,我想列j重置,而不是保持原来的价值。

我有这个代码为我的第一行工作

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "I2" Then Range("J2").ClearContents End Sub 

我怎样才能让它遍历每一行?

詹姆斯,谢谢

你的意思是说,只要我的一个值被改变了,你想把J中相应的值清零? 最好限制在一个特定的I / J范围内 – 这将做整个列。

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.column = 9 Then target.offset(,1).ClearContents End Sub 

我会检查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