In diesem Tutorial zeige ich Euch wie Ihr Range und Cells kombiniert anwenden könnt. Mit dieser Kombination seit Ihr bestens gewappnet. Range ist ideal um auf einzelne Zellen und Zellbereiche zuzugreifen. Cells ist ideal um Zellen über Schleifen auszuwählen bietet aber nicht die Möglichkeit für sich alleine auf Zellbereiche zuzugreifen. Mit der Kombination bleibt eigentlich kaum noch ein Wunsch offen.
Das Startvideo der VBA Tutorial Serie auf YouTube findet Ihr hier
Die Playlist meiner VBA Tutorial Serie auf YouTube findet Ihr hier
Benutzt zum Üben eine separate Tabelle für Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
In diesem Beispiel zeige ich zuerst nochmal wie das ansprechen der Zellen mit Cells funktioniert.
Cells hat 2 Parameter. Einmal die Zeilennumer und dann die Spaltennummer.
Cells(ZeilenNummer, SpaltenNummer)
Mit Cells(1,1) wird die Zelle A1 angesprochen
Mit Cells(3,4) wird die Zelle D3 angesprochen
In beiden Zellen wird mit .Value = "X" dort auch ein X eingetragen.
1 2 3 4 5 6 7 8 |
Sub RangeCellsTutorial1() Cells(1, 1).Value = "X" Cells(3, 4).Value = "X" End Sub |
Die gleichen Ergebnisse wie im obigen Beispiel erhalten wir auch mit Range auf folgende Weise. Diese Variante wirkt natürlich auf den ersten Blick sehr übersichtlich und leicht verständlich. Wenn man Range für einzelne Zellen und Zellbereiche benutzt ist das auch wirklich perfekt. Wenn man aber mit Schleifen arbeitet dann wird es schon etwas komplizierter.
1 2 3 4 5 6 7 8 |
Sub RangeCellsTutorial2() Range("A1").Value = "X" Range("D3").Value = "X" End Sub |
Hier zeige ich nochmal wie man einen Zellbereich mit Range ansprechen kann. Hier werden die Zellen A1 bis D3 mit einem X beschrieben.
1 2 3 4 5 6 7 |
Sub RangeCellsTutorial3() Range("A1:D3").Value = "X" End Sub |
Das gleiche wie im letzten Beispiel. Also Range("A1:D3") wird zu Range(Cells(1, 1), Cells(3, 4)). Das sieht im ersten Moment sehr kompliziert aus aber ist eigentlich ganz einfach. Denkt Euch erst einmal die Cells weg und nehmt Range(,). Im Grunde genommen ist in diesem Beispiel das Komma genauso wie der Doppelpunkt wenn Ihr mit Excel in der Tabelle arbeitet. Der Doppelpunkt zeigt nur dass es sich um ein Bereich handelt. Das Komma hier ist nichts anderes. Jetzt setzt Ihr eine Zelle davor ein. Cells(1,1) bedeutet A1 und Cells(3,4) bedeutet D3.
Das erste kommt vor dem Komma und das zweite nach dem Komma. So erhalten wir Range(Cells(1, 1), Cells(3, 4)) also das gleiche wie Range("A1:D3").
1 2 3 4 5 6 7 |
Sub RangeCellsTutorial() Range(Cells(1, 1), Cells(3, 4)).Value = "X" End Sub |
Hier habe ich das ganze mal in eine For Schleife eingebaut. Hier werden im ersten Durchlauf die Zellen von A1 bis A10 beschrieben. Anschließend wegen Step 2 erst die Zellen C1 bis C10. Mit Step kann man Schrittweise arbeiten und bedeutet dass man nur jeden zweiten Schritt ausführt.
Also wird bei dieser Schleife jede zweite Spalte befüllt (von Zeile 1-10) bis i irgendwann 30 erreicht.
Wer Probleme mit der Ausführung hat und Option Explicit aktiviert hat, muss die Variable i noch deklarieren. Vor der For Schleife kommt dann noch Dim i As Integer
1 2 3 4 5 6 7 8 9 10 11 |
Sub RangeCellsTutorial() For i = 1 To 30 Step 2 Range(Cells(1, i), Cells(10, i)).Value = "X" Next End Sub |