Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: nächste Zeile in VBA Code

nächste Zeile in VBA Code
18.03.2016 13:20:33
phlp
Moin zusammen
ich möchte einen Befehl im VBA Code zur besseren Lesbarkeit auf mehrere Zeilen aufteilen. Konkret soll die Hintergrundfarbe von mehreren benannte Zellen verändert werden.
Wenn ich alles in eine Zeile schreibe funktioniert es wunderbar, nur nicht wenn ich versuche die Zeilen aufzuteilen.
Kann mir jemand sagen was ich hier falsch mache?
Dim Cell As Range
For Each Cell In Range("Zelle1, Zelle2" _
, "Zelle3, Zelle4")
Cell.Interior.ColorIndex = 0
Next

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nächste Zeile in VBA Code
18.03.2016 13:33:02
Daniel
Hi
auch beim Unterstrich wird der Code im Prinzip unterbrochen.
da du hier in mitten eines Textstring den Zeilenumbruch einfüngst, musst du an der Trennstelle den Textstring abschließen (das hast du gemacht) und dann die beiden Teiltexte mit & verketten.
das Komma gehört mit zum Text:
Dim Cell As Range
For Each Cell In Range("Zelle1,Zelle2," & _
"Zelle3, Zelle4")
Cell.Interior.ColorIndex = 0
Next
Gruß Daniel

Anzeige
AW: nächste Zeile in VBA Code
18.03.2016 13:52:57
phlp
Sehr cool. Danke!
Eine weitere Frage habe ich noch: gibt es für dieses Befehl (oder allgemein) ein Maximum für die Anzahl der Zellen die so angesprochen werden können? Oder ein Maximum an Aufzählungen die in die KLammer hinter Range eingefügt werden können?
Habe nämlich grad n ganzen Haufen an Zellen da reingepackt und die Fehlermeldung "Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen" erhalten. Wenn ich dann ein paar anzusprechende Zellen entferne funktioniert alles!

Anzeige
AW: nächste Zeile in VBA Code
18.03.2016 14:49:42
Daniel
Hi
wenn du die Range über den Addressstring definierst, darf dieser maximal 256 Zeichen lang sein.
im Bedarfsfall kannst du aber mehrere Ranges mit UNION zu einer Range zusammensetzen.
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Code: In der nächsten Zeile weiterschreiben


Schritt-für-Schritt-Anleitung

Um in VBA eine lesbare Struktur zu erreichen und den Code auf mehrere Zeilen aufzuteilen, kannst du den Unterstrich _ verwenden. Hier ist ein einfaches Beispiel, wie du die Hintergrundfarbe mehrerer benannter Zellen ändern kannst:

Dim Cell As Range
For Each Cell In Range("Zelle1, Zelle2," & _
                       "Zelle3, Zelle4")
    Cell.Interior.ColorIndex = 0
Next

Achte darauf, dass du den Textstring korrekt abschließt und die Teile mit & verkettst. So kannst du bequem in der nächsten Zeile weiterschreiben.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass der Code nicht korrekt ausgeführt wird, wenn der Unterstrich falsch verwendet wird. Stelle sicher, dass der Unterstrich am Ende der Zeile steht, ohne nachfolgende Leerzeichen. Ein weiterer häufiges Problem tritt auf, wenn du versuchst, zu viele Zellen in einer Range zu definieren. Der Addressstring darf maximal 256 Zeichen lang sein.

Wenn du die Fehlermeldung „Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen“ erhältst, kannst du versuchen, die Anzahl der Zellen zu reduzieren oder mehrere Ranges mit UNION zu kombinieren.


Alternative Methoden

Wenn du die Range-Methode nicht verwenden möchtest oder musst, gibt es alternative Möglichkeiten. Eine davon ist die Verwendung von Cells, um gezielt auf Zellen zuzugreifen. Hier ein Beispiel:

Dim i As Integer
For i = 1 To 4
    Cells(i, 1).Interior.ColorIndex = 0 'Färbt die Zellen A1 bis A4
Next i

Diese Methode ist besonders nützlich, wenn du in einer Schleife durch Zeilen oder Spalten iterieren möchtest.


Praktische Beispiele

Hier sind zwei praktische Beispiele, die zeigen, wie du Excel in der nächsten Zeile weiterschreiben kannst:

  1. Hintergrundfarbe von Zellen ändern:
Dim Cell As Range
For Each Cell In Range("A1, A2, A3," & _
                       "B1, B2")
    Cell.Interior.ColorIndex = 3 'Setzt die Hintergrundfarbe auf Rot
Next
  1. Text in der nächsten Zeile einfügen:
Dim i As Integer
For i = 1 To 5
    Cells(i, 2).Value = "Zeile " & i 'Schreibt "Zeile 1" bis "Zeile 5" in Spalte B
Next i

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Halte deinen Code modular, indem du Funktionen und Subroutinen verwendest, um die Lesbarkeit zu verbessern.
  • Nutze Kommentare, um komplexe Logik zu erläutern, besonders wenn du in der nächsten Zeile weiterschreibst.

FAQ: Häufige Fragen

1. Gibt es eine maximale Anzahl von Zellen, die ich in einer Range angeben kann?
Ja, der Addressstring darf maximal 256 Zeichen lang sein. Wenn du mehr Zellen ansprechen möchtest, musst du mehrere Ranges mit UNION zusammenfassen.

2. Wie kann ich den Zeilenumbruch im Code handhaben?
Verwende den Unterstrich _ am Ende der Zeile, um den Code in der nächsten Zeile fortzusetzen. Achte darauf, dass kein Leerzeichen nach dem Unterstrich folgt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige