Home allgemeine VBA Texte VBA Zellen und Bereiche ansprechen
VBA Zellen und Bereiche ansprechen PDF Drucken E-Mail
Benutzerbewertung: / 502
SchwachPerfekt 
Geschrieben von: Marcus Rose   
Mittwoch, 28. Mai 2008 um 17:14 Uhr

Auf Formelbasis weisen wir Excel einen Bereich zu, indem wir einfach den Zeilen- und Spaltenindex angeben (z.B. =Formel(A1) oder =Formel(A1:C10)). In Excel VBA sieht das etwas anders aus. Hier weisen wir den Bereich mit den Befehlen Range, oder Cells zu.

Cells:

Mit Cells arbeiten wir, wenn wir eine bestimmte Zelle ansprechen wollen. Die komplette Syntax dieses Befehls lautet: Cells(Zeile,Spalte). Wir geben innerhalb der Klammer erst einmal die Zeilennummer und dann die Spaltennummer an. Spaltennummer? - Richtig - es werden hier nicht die Buchstaben A, B, C sondern die Zahlen 1, 2, 3 angegeben. Hier müssen wir also etwas umdenken. Bei der Zeilennummer bleibt hingegen alles beim Alten. Wollen wir also die Zelle A1 ansprechen, so schreiben wir: Cells(1,1)

Tipp: Wer viel mit dieser Art der Bereichsdeklarierung arbeitet, kann sich in seinem Tabellenblatt unter Extras - Optionen - Register Allgemein - die Z1S1 - Bezugsart einschalten. Mit dieser Einstellung wird Euch der Spaltenindex mit Ziffern angezeigt.

 

Range:

Alternativ zum Cells - Befehl können wir hier noch den Range - Befehl nutzen. Bei diesem Befehl sprechen wir, die Zellen fast genauso an, wie wir es bereits aus dem Formel Bereich von Excel kennen. Hier lautet die Syntax: Range("Spalte & Zeile") . Wichtig ist hier, dass man die Zellangaben in Anführungsstriche setzt. Wollen wir die Zelle A1 ansprechen, so würden wir somit: Range("A1") schreiben.

Mit dem Range - Befehl können wir aber nicht nur einzelne Zellen, sondern auch komplette Bereiche ansprechen. Die Syntax dazu lautet: Range("Anfangszelle : Endzelle") . Würden wir also schreiben: Range("A1:B5") so würden wir den gesamten Bereich von A1 bis B5 nutzen.

 

Cells & Range kombiniert:

Eine zusätzliche Möglichkeit der Bereichsdeklarierung ist, den Range - Befehl mit Cells zu kombinieren. Hier haben wir 2 Möglichkeiten der Anwendung:

  • Range("E1", Cells(3, 5)).Select
  • Range(Cells(1, 1), Cells(3, 1)).Select

     

mehrere Bereiche ansprechen:

Etwas komplizierter wird die Sache, wenn wir mehrere Bereiche gleichzeitig deklarieren wollen. Ist dem der Fall, so müssen wir erst einmal eine Variable als Range deklarieren und dimensionieren. Dieser Variablen, im Beispiel RaBereich, werden mit Hilfe des Befehls Union die verschiedenen Bereiche übergeben. Zum Schluss wird dann die Variable als Bereich angesprochen.

 

Sub mehrere_Bereiche()

Dim RaBereich As Range

Set RaBereich = Union(Range("A1:A10"), Range("D1:D10"), Range("G1:G10"))

RaBereich.Select

End Sub

 

Zellen mittels Variablen ansprechen:

Was wir auch noch machen können, ist eine Zelle mittels Variablen anzusprechen. Diese Vorgehensweise wird sehr oft angewendet, denn das hat den Vorteil, dass man den Inhalt einer Zelle abfragen kann und bei einer Übereinstimmung eine Aktion auslöst. Im folgenden Beispiel prüfen wir, ob in einer Zelle, des Bereiches A1 bis A10, das Wort "Sonntag" steht. Ist dem der Fall, dann soll die Zelle gelb eingefärbt werden:

 

Sub Bereich_mit_Variable_1()

Dim IntZeile As Integer

For IntZeile = 1 To 10

If Cells(IntZeile, 1) = "Sonntag" Then

Cells(IntZeile, 1).Interior.ColorIndex = 6

End If

Next

End Sub

 

Im oben genannten Beispiel habe ich mich wieder einmal für Cells entschieden. Man könnte an dieser Stelle zwar auch den Range - Befehl nutzen, ist meiner Meinung aber nicht so schön. Um Euch aber dennoch aufzuzeigen wie ein solches Makro ausschauen würde, habe ich das oben genannte Makro auch auf den Range - Befehl umgebaut:

 

Sub Bereich_mit_Variable_2()

Dim IntZeile As Integer

For IntZeile = 1 To 10

If Range("A" & IntZeile) = "Sonntag" Then

Range("A" & IntZeile).Interior.ColorIndex = 6

End If

Next

End Sub

 

Ein, meiner Meinung nach, besseres Beispiel wäre ein solches Makro:

 

Sub Bereich_mit_Variable_3()

Dim IntZeile As Integer

IntZeile = 10

Range("A1:A" & IntZeile).Interior.ColorIndex = 6

End Sub

 

Bei diesem Makro weisen wir einem Bereich eine neue Zellfarbe zu. Mit der Variablen IntZeile geben wir die letzte Zeile des Bereiches an. In der Regel wird diese letzte Zeile allerdings im Makro automatisch ermittelt.

 

Gesamten genutzten Bereich ansprechen:

Als letzte Möglichkeit möchte ich hier noch aufzeigen, wie man den gesamten genutzten Bereich einer Tabelle ansprechen kann. Um so etwas zu praktizieren haben wir den Befehl UsedRange.

 

Sub gesamter_Bereich()

UsedRange.Interior.ColorIndex = 6

End Sub

 

Mit UsedRange wird das komplette Tabellenblatt nach Einträgen abgesucht. Der gesamte Bereich, von der ersten bis zur letzten Eintragung, wird im vorliegenden Beispiel gelb markiert (auch die Zellen ohne Eintrag!).

Zuletzt aktualisiert am Montag, 09. März 2009 um 06:33 Uhr
 
Copyright © 2017 ms-excel.eu. Alle Rechte vorbehalten.
 

Autoren - Login

Werbung

wichtige Links:
http://ms-excel.eu
Hier habt Ihr eine gute Excel Hilfe
Besucherstatistik
Besucher gesamt: 4.476.129
Besucher heute: 1.576
Besucher gestern: 1.981
Max. Besucher pro Tag: 4.488
gerade online: 15
max. online: 507
counter Statistiken