2017-11-01 2 views
0

Derzeit schreibe ich den Code in repittative Mode, aber ich möchte jetzt, wie ich Schleife in mehreren Bereich verwenden kann, um das gleiche Ergebnis zu erzielen.VBA Excel iterieren auf mehreren Bereich

Ich bekomme einen Fehler, wenn ich zwei Bereiche in For Each eingeben.

Sub test_Click() 

If (Range("C3").Value <> Range("C6").Value) Then 
    Range("B3").Value = 5 

End If 

If (Range("D3").Value <> Range("D6").Value) Then 
    Range("C3").Value = 5 

End If 


If (Range("E3").Value <> Range("E6").Value) Then 
    Range("D3").Value = 5 

End If 

End Sub 

Antwort

3

Es gibt keinen Grund, warum sollten Sie einen Fehler in Ihrer For Each Anweisung bekommen. (Aber dann wieder, ich verstehe nicht, was Sie unter „wenn ich legte zwei Bereiche in For Each“.)

Sub test_Click() 
    Dim cel As Range 
    For Each cel in Range("C3:E3").Cells 
     If cel.Value <> cel.Offset(3, 0).Value Then 
      cel.Offset(0, -1).Value = 5 
     End If 
    Next   
End Sub 
+0

Es ist gut, dass Sie 'Range (" C3: E3 ") hinzugefügt haben. Zellen, sonst würde Excel nicht wissen, wie man die' Zellen' durchläuft;) JK –

+0

@Shairado Ich habe mir angewöhnt, '.Cells hinzuzufügen 'um zu verhindern, dass ich es versehentlich vergesse, wenn ich etwas wie" Für jede Zelle in Zeilen "(" 1:10 ") mache (wo es standardmäßig eine Zeile nacheinander statt einer Zelle verarbeitet) . Also gibt es einige Methoden zu meinem Wahnsinn! : D – YowE3K

1

könnte für die Schleife in einem mit dem Offset-Befehl erfolgen

For i = 0 To 3 
    If (Range("C3").Offset(0, i).Value <> Range("C6").Offset(0, i).Value) Then 
     Range("B3").Offset(0, i).Value = 5 
    End If 
Next 
Verwandte Themen