Kontakt  Anfahrtplan   Datenschutzerklärung  Impressum Englisch 

Service: Excel-VBA: Zellen und Zellbereiche ansprechen

Zellen oder Zellbereiche werden in Excel-VBA mit Hilfe eines 'Range'- oder eines 'Cells'-Objekts oder mit einer Kombination aus beidem angesprochen.

Einzelne Zellen

Einzelne Zellen können entweder mit der 'A1'-Schreibweise über ein 'Range'-Objekt oder mit der Index-Schreibweise über ein 'Cells'-Objekt angesprochen werden.

' 'A1'-Schreibweise
    Range("A1").Value = 10
' Oder kürzer:
    [A1].Value = 10
' Index-Schreibweise
    Cells(2, 1).Value = 10

Verwendet man die Index-Schreibweise, bezeichnet der erste Parameter die Zeilennummer und der zweite Index die Spaltennummer. Also bedeutet 'Cells(2, 1)' die Zelle in Zeile zwei, Spalte eins (also 'A2').

Zellbereiche

Auch hier kann wahlweise die 'A1'-Schreibweise oder die Index-Schreibweise verwendet werden.

' 'A1'-Schreibweise
    Range("A1:B2").Interior.ColorIndex  = 15
' oder
    [A1:B2].Interior.ColorIndex  = 15
' Index-Schreibweise
    Range(Cells(1, 1), Cells(2, 2)).Interior.ColorIndex = 15

Die Index-Schreibweise erscheint sehr umständlich und deswegen auf den ersten Blick von geringem Nutzen. Wenn man jedoch bei komplexeren Makros Spaltenangaben indirekt ermitteln muss, ist die Index-Schreibweise von großem Nutzen.

    Dim iAnfSp As Long, iEndSp As Long

' Spaltenangaben kommen von irgend woher (z.B. Berechnung oder Parameter)
    iAnfSp = 10
    iEndSp = 12

' ...
    Range(Cells(1, iAnfSp), Cells(2, iEndSp)).Interior.ColorIndex = 15
Arbeitsblatt angeben

Wahlweise kann man mit angeben, auf welches Arbeitsblatt man sich bezieht. Der entsprechende Code sieht dann etwa so aus:

    Sheets.Item("Tabelle3").[A1].Value = 10
    Sheets.Item("Tabelle3").[A1:B2].Interior.ColorIndex  = 15

Um den Code kürzer, übersichtlicher und schneller zu machen, ist es von Vorteil, den Zugriff auf Arbeitsblätter über eine WorkSheet-Variable durchzuführen.

    Dim ws as WorkSheet
    Set ws = Sheets.Item("Tabelle3")
    ws.[A1].Value = 10
    ws.[A1:B2].Interior.ColorIndex  = 15

Wichtig: Spricht man einen Zellbereich mit Hilfe der Index-Schreibweise an, muss man das Arbeitsblatt sowohl für das 'Range'-Objekt als auch für die 'Cells'-Objekte angeben.

Dim ws as WorkSheet
Set ws = Sheets.Item("Tabelle3")
ws.Range(ws.Cells(1, iAnfSp), ws.Cells(2, iEndSp)).Interior.ColorIndex = 15

Vielleicht auch interessant für Sie: VBA-Extension Tool.
Produktivitätssteigerung für VBA durch Vereinfachung von Routinearbeiten.

Seitenanfang


Wider dem Blindflug!

Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!

Lesen Sie dies ...


Einfach - Schnell - Günstig!

Tischrechner als Software.

Jetzt herunterladen und kostenlos testen!

Mehr lesen ...


Effektiver Arbeiten!

Tastenkombinationen können PC-Arbeit erheblich beschleunigen.

Mehr lesen ...


Kleine Helfer für Sie:

Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.

Ausprobieren ...


Wissenswertes!

Sicherheit im PC-Bereich

Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...

Mehr lesen ...