2016-11-24 123 views
0

我有一個父下拉框欄我和孩子下拉在J欄框,改變基於列的一度我怎樣才能通過。如果/ then語句循環

如果列我的變化,我會像列j重置而不是保持其原始值。

我已經工作了我的第一行的代碼

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

我怎樣才能得到它遍歷每一行?

非常感謝, 詹姆斯

回答

2

你的意思是,只要在我的值改爲你想以J的相應值清零?最好限制在一個特定的I/J範圍內 - 這將完成整個列。

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

我想補充一點,共產國際的解決方案,對礦井的邊緣,它會檢查多個小區的改變。 – SJR

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