Cells und Range kombiniert in Excel VBA
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
Achtung:
Benutzt zum Üben eine separate Tabelle für Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
Video zu diesem Tutorial:
Beispielscript: Einzelne Zellen mit Cells ansprechen
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.
Sub RangeCellsTutorial1() Cells(1, 1).Value = "X" Cells(3, 4).Value = "X" End Sub
Beispielscript: Einzelne Zellen mit Range ansprechen
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.
Sub RangeCellsTutorial2() Range("A1").Value = "X" Range("D3").Value = "X" End Sub
Beispielscript: Zellbereich mit Range ansprechen
Hier zeige ich nochmal wie man einen Zellbereich mit Range ansprechen kann. Hier werden die Zellen A1 bis D3 mit einem X beschrieben.
Sub RangeCellsTutorial3() Range("A1:D3").Value = "X" End Sub
Beispielscript: Zellen mit Range und Cells kombiniert ansprechen
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").
Sub RangeCellsTutorial() Range(Cells(1, 1), Cells(3, 4)).Value = "X" End Sub
Beispielscript: Range und Cells kombiniert in Schleife ansprechen
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
Sub RangeCellsTutorial() For i = 1 To 30 Step 2 Range(Cells(1, i), Cells(10, i)).Value = "X" Next End Sub
Das könnte Dich auch interessieren
- Arbeitsmappe erstellen und speichern in Excel VBA
- Eine eigene Funktion erstellen ganz einfach (Excel)
- Entwicklertools anzeigen (Microsoft Excel)
- Entwicklertools anzeigen / Makro / VBA Visual Basic (Microsoft Word)
- Excel VBA Module schneller hinzufügen
- For Each Schleife in Excel VBA
- If Then Else in Excel VBA
- InputBox in Excel VBA
- Makro ausführen mit Button in Excel VBA
- Mit Cells die Zelle Tabelle Arbeitsmappe selektieren in Excel VBA
- MsgBox in Excel VBA
- Offset - Verschieben der aktuellen Position in VBA
- Prozedur in Arbeitsmappe, Tabelle oder Modul?
- Tabellenblätter positionsgenau hinzufügen in Excel VBA
- Tabellennamen in Tabelle eintragen in Excel VBA
- While Wend Schleife in Excel VBA
- Zeilenumbruch bei längeren VBA Codezeilen
- Zellen von anderer Tabellen kopieren mit Excel VBA
- Zugriff auf Arbeitsmappen und Tabellen in Excel VBA