Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ´VBA Range mit Variablen

´VBA Range mit Variablen
19.01.2015 09:35:51
david.a2k
Hallo,
ich möchte in einem über Variablen definierten Bereich alle Zellen von Leerzeichen befreien:
Wie definiere ich aber den Range?
Meine Variablen sind: "aktuelle zeile", "spalte" und "zeile"
Dere Range soll in der Zelle "aktuelle zeile" + 4 / "spalte" beginnen und bis "zeile" -1 / "spalte" gehen.
In etwa so, aber der Range passt so nicht:
Dim WS As Worksheet, Zelle As Range
Set WS = Worksheets("Seitenumsätze")
For Each Zelle In WS.Range(.Cells(aktuelle zeile + 4, spalte), .Cells(zeile - 1, spalte))
Zelle.Value = Trim(Zelle.Text)
Next Zelle
Danke und Gruß

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ´VBA Range mit Variablen
19.01.2015 09:46:59
yummi
Hallo David,
so gehts:

Dim WS As Worksheet, Zelle As Range
Dim AktuelleZeile As Long
Dim spalte As Integer
Dim zeile As Long
AktuelleZeile = 4
zeile = 10
spalte = 3
Set WS = Worksheets("Seitenumsätze")
With WS
For Each Zelle In WS.Range(.Cells(AktuelleZeile + 4, spalte), .Cells(zeile - 1, spalte))
Zelle.Value = Trim(Zelle.Text)
Next Zelle
End With
Gruß
yummi

Anzeige
Leerzeichen? AW: ´VBA Range mit Variablen
19.01.2015 09:47:33
Klaus
Hallo David,
heißt deine Variable wirklich "aktuelle Zeile" mit Leerzeichen?
"Zeile" Ist überhaupt nicht definiert oder dimenstioniert und daher null. Spalte ebenso.
Ich vermute, du zeigst und hier nur einen Codeausschnitt? Zeige uns bitte den ganzen relevanten Code, sonnst kann niemand den Fehler finden und raten möchte keiner.
Grüße,
Klaus M.vdT.

Anzeige
Leerzeichen? AW: ´VBA Range mit Variablen
19.01.2015 09:57:28
david.a2k
Hallo,
ja die Variablen waren an anderer Stelle definiert.
Wenn ich aber den von yummie geschickten Code nehme, und die Definition der Variablen ignoriere (da ich diese ja an anderer Stelle bereits definiert habe), funktioniert es.
Dann lag es wohl tatsächlich nur an dem Leerzeichen, was ich fälschlicherweise in "aktuelle Zeile" gebaut hatte.
Vielen Dank fü die schnelle Hilfe!
Gruß

Anzeige
Danke für die Rückmeldung! owT.
19.01.2015 10:03:48
Klaus
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Range mit Variablen in Excel


Schritt-für-Schritt-Anleitung

  1. Arbeitsblatt und Variablen definieren: Zuerst musst du das Arbeitsblatt und die Variablen, die du verwenden möchtest, definieren. Beispiel:

    Dim WS As Worksheet
    Dim Zelle As Range
    Dim AktuelleZeile As Long
    Dim spalte As Integer
    Dim zeile As Long
    
    Set WS = Worksheets("Seitenumsätze")
    AktuelleZeile = 4
    zeile = 10
    spalte = 3
  2. Range mit Variablen definieren: Der nächste Schritt ist, den Bereich mit deinen Variablen zu definieren. Hierbei kannst du die Cells-Methode verwenden:

    For Each Zelle In WS.Range(WS.Cells(AktuelleZeile + 4, spalte), WS.Cells(zeile - 1, spalte))
        Zelle.Value = Trim(Zelle.Text)
    Next Zelle
  3. Leerzeichen entfernen: Mit der Schleife kannst du dann in jedem Zellenwert die Leerzeichen entfernen.


Häufige Fehler und Lösungen

  • Fehler bei der Variablenbenennung: Wenn du Leerzeichen in den Variablennamen verwendest (z.B. "aktuelle Zeile"), kann dies zu Fehlern führen. Verwende stattdessen Unterstriche oder camelCase (z.B. aktuelleZeile).

  • Nicht definierte Variablen: Stelle sicher, dass alle Variablen, wie zeile oder spalte, korrekt definiert sind. Andernfalls kann dein Code nicht ausgeführt werden.

  • Bereichsdefinition: Achte darauf, dass die Range korrekt definiert ist. Ein häufiges Problem ist die falsche Verwendung von With und Set.


Alternative Methoden

  • Excel VBA Cells mit Variable: Du kannst auch die Cells-Methode verwenden, um direkt auf Zellen zuzugreifen. Beispiel:

    Dim Zelle As Range
    Set Zelle = WS.Cells(AktuelleZeile + 4, spalte)
    Zelle.Value = Trim(Zelle.Text)
  • Mit ActiveSheet arbeiten: Wenn du nur mit dem aktiven Arbeitsblatt arbeiten möchtest, kannst du ActiveSheet.Range verwenden, um deine Range zu definieren.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man die vba range mit variablen definieren kann:

Sub EntferneLeerzeichen()
    Dim WS As Worksheet
    Dim Zelle As Range
    Dim AktuelleZeile As Long
    Dim spalte As Integer
    Dim zeile As Long

    Set WS = Worksheets("Seitenumsätze")
    AktuelleZeile = 4
    zeile = 10
    spalte = 3

    For Each Zelle In WS.Range(WS.Cells(AktuelleZeile + 4, spalte), WS.Cells(zeile - 1, spalte))
        Zelle.Value = Trim(Zelle.Text)
    Next Zelle
End Sub

In diesem Beispiel wird ein Excel Makro range mit variablen erstellt, das Leerzeichen in einem definierten Bereich entfernt.


Tipps für Profis

  • Verwende Option Explicit: Diese Zeile am Anfang deines Codes sorgt dafür, dass alle Variablen explizit deklariert werden müssen. Das hilft, Fehler zu vermeiden.

  • Debugging-Tools nutzen: Nutze die Debugging-Tools von Excel, um deinen Code Schritt für Schritt zu überprüfen, insbesondere wenn du mit vba range mit variablen arbeitest.

  • Code leserfreundlich gestalten: Verwende Kommentare und eine klare Struktur, damit dein Code leicht verständlich bleibt.


FAQ: Häufige Fragen

1. Wie definiere ich einen Bereich mit Variablen? Um einen Bereich mit Variablen zu definieren, verwende die Range-Methode in Verbindung mit der Cells-Methode, wie im Beispiel dargestellt.

2. Was mache ich, wenn ich einen Fehler in meinem Code habe? Überprüfe zunächst, ob alle Variablen korrekt definiert sind und keine Leerzeichen oder Sonderzeichen in den Namen vorhanden sind. Verwende auch die Debugging-Tools in Excel VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige