VBA – Programmierung mit Excel Grundlagen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Seite 70<br />
Tabellennavigation<br />
Einzelzellen oder Zellbereichen sein. Überschneiden sich die Bereiche, wird die<br />
Vereinigungsmenge genommen.<br />
<br />
Worksheets("Testtabelle").Range("B1", "D3")<br />
Worksheets("Testtabelle").Range("B1:C3", "C1:E5")<br />
✘ Die erste Anweisung arbeitet <strong>mit</strong> dem Zellbereich B1:D3, die zweite <strong>mit</strong> dem Bereich, der<br />
aus der Vereinigung der Bereiche B1:C3 und C1:E5, also dem Bereich B1:E5.<br />
➨ Solange im aktiven Tabellenblatt gearbeitet wird, benötigt die Range <strong>–</strong> Methode das<br />
Worksheet <strong>–</strong> Objekt nicht. Da<strong>mit</strong> Verkürzen sich die Anweisungen, z.B. zu:<br />
Range("M4:N7")<br />
Range("B1:D3 D1:E3")<br />
Range("B1:C3", "C1:E5")<br />
9.1.2 Positionierung über die Cells - Eigenschaft<br />
Im Unterschied zu der Positionierung über die RANGE <strong>–</strong> Eigenschaft bietet diese Alternative<br />
die Möglichkeit, bei der Positionierung Zeilen- und Spaltenindizes zu verwenden, was<br />
insbesondere für berechnete Zelladressen oder die Benutzung von Variablen für<br />
Zelladressen ein großer Vorteil ist. Auch hier sind mehrere Syntaxvarianten möglich:<br />
Objekt.Calls(RowIndex, ColumnIndex)<br />
Object.Cells(Index)<br />
Object.Cells<br />
• Manuelle Eingabe der Zellindizes<br />
Die erste Variante wird zur Er<strong>mit</strong>tlung von Adressen einzelner Zellen benutzt. ROWINDEX<br />
steht für den Zeilenindex, COLUMNINDEX für den Spaltenindex der Zelle. Für die<br />
Zuweisung eines Wertes an die Zelle B2 der Tabelle1 steht dann beispielsweise<br />
Worksheets(1).Cells(2,2).Value = 233<br />
Die zweite Variante er<strong>mit</strong>telt ebenfalls eine Zelle. INDEX ist hier die „laufende Nummer“<br />
einer Zelle im Tabellenblatt. Die Zählung beginnt <strong>mit</strong> der Zelle A1 (Index = 1), für letzte<br />
Zelle der ersten Zeile gilt Index = 256, A2 hat den Indexwert 257, usw.. So<strong>mit</strong> hätte die<br />
obige Anweisung in dieser Syntaxvariante die Form:<br />
Worksheets(1).Cells(258).Value = 233<br />
Die dritte Variante gibt eine Liste aller Zellen eines Tabellenblattes zurück. Sie wird<br />
benutzt für Methoden und Eigenschaften die Formatierungen an Zellen übergeben, aber<br />
nicht <strong>mit</strong> WORKSHHEET <strong>–</strong> Objekten (Tabellenblätter), sondern nur <strong>mit</strong> RANGE <strong>–</strong> Objekten<br />
arbeiten.<br />
Für das Entfernen der Hintegrundmuster aus Zellen eines Tabellenblattes könnte (!) die<br />
Anweisung<br />
Worksheets(1).Interior.Pattern = xlNone<br />
benutzt werden, die jedoch nicht den gewünschten Effekt liefert (Laufzeitfehler 438). Weil<br />
die INTERIOR <strong>–</strong> Eigenschaft nur RANGE <strong>–</strong> Objekte akzeptiert muß <strong>mit</strong> CELLS ein Range <strong>–</strong><br />
Objekt erzeugt werden:<br />
Worksheets(1).Cells.Interior.Pattern = xlNone<br />
➨ Solange im aktiven Tabellenblatt gearbeitet wird, benötigt die CELLS <strong>–</strong> Eigenschaft,<br />
wie die schon oben vorgestellte RANGE - Methode das WORKSHEET <strong>–</strong> Objekt nicht.