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

VBA Zelladressen und Variablen

Forumthread: VBA Zelladressen und Variablen

VBA Zelladressen und Variablen
03.11.2003 16:34:59
Herbert S.
Hallo VBA-Experten,

folgende Problemstellung:
gibt es eine Möglichkeit die Zelladresse der letzten Zelle einer Tabelle in eine Variable zu übernehmen und diese Variable in einem Range Objekt weiterzuverwenden?

mit Dank im voraus
Herbert S.
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelladressen und Variablen
03.11.2003 16:57:57
ChrisL
Hi Herbert

Versuch mal...

Dim rngZelle As Range
Set rngZelle = Range("A65536").End(xlUp)
MsgBox rngZelle.Address

Gruss
Chris
AW: VBA Zelladressen und Variablen
03.11.2003 17:06:59
Jörg Gradert
Hallo Herbert,
ich habe es so hinbekommen


Sub Makro1()
Dim a
a = Selection.SpecialCells(xlCellTypeLastCell).Address
Range(a).Select
End Sub


Ich weiss allerdings nicht als was man a dimensionieren soll?
as Range hätte ich erwartet, funktioniert aber nicht. Blockvariable nicht dimensioniert.
Versteh ich nicht, da man es hinterher ja als Range ansprechen kann.
Kann es jemand erklären.

Gruss Jörg
Anzeige
AW: VBA Zelladressen und Variablen
03.11.2003 20:31:57
PeterW
Hallo Jörg,

schau dir mal im Einzelschrittmodus an, was in a steht, dürfte ein String sein. Und mit Range("STRING") kannst du den Bereich ansprechen wenn der String für einen gültigen Range steht.

Gruß
Peter
AW: VBA Zelladressen und Variablen
03.11.2003 21:35:28
Jörg Gradert
Hallo Peter,
in a steht $F$1 (die Adresse des letzten Eintrags im Tabellenblatt) als String, das hab ich soweit begriffen. Mit Range("$F$1") bzw. Range(a) kann die Zelle F1 wieder angesprochen werden, soweit ist es mir jetzt klar.
Jetzt weiss ich noch nicht, wann man eine Variable als Range deklariert.
Kannst Du ein einfaches Beispiel geben?

Gruss Jörg
Anzeige
AW: VBA Zelladressen und Variablen
03.11.2003 22:12:00
PeterW
Hallo Jörg,

beispielsweise in For Each In Schleifen. Als Beispiel löscht folgender Code alles außer Formeln.

Sub alles_ausser_formeln_weg()
Dim rngC As Range
For Each rngC In ActiveSheet.UsedRange
If Not rngC.HasFormula Then
rngC.ClearContents
End If
Next
End Sub

Gruß
Peter
Anzeige
Danke: VBA Zelladressen und Variablen
04.11.2003 01:16:53
Jörg Gradert
Hallo Peter,
jetzt ist mir der Unterschied klar geworden, vielen Dank.

Gruss Jörg
AW: VBA Zelladressen und Variablen
03.11.2003 17:44:45
Herbert S.
Hallo Chris,

danke für die prompte Antwort.
funktioniert tadellos, nur wie kann diese Variable in einem weiteren(neuen) Range-Objekt weiterverwenden (übergeben)?

Danke
Herbert S.
Anzeige
AW: VBA Zelladressen und Variablen
03.11.2003 19:47:15
ChrisL
Hi Herbert

Meinst du so?

Dim rngZelle As Range
Dim rngZelle2 As Range
Set rngZelle = Range("A65536").End(xlUp)
Set rngZelle2 = rngZelle
MsgBox rngZelle2.Address

Gruss
Chris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zelladressen und Variablen in VBA verwenden


Schritt-für-Schritt-Anleitung

  1. Zelladresse speichern: Um die Zelladresse der letzten Zelle in einer Tabelle in eine Variable zu speichern, kannst du den folgenden VBA-Code verwenden:

    Dim rngZelle As Range
    Set rngZelle = Range("A65536").End(xlUp)
    MsgBox rngZelle.Address
  2. Zelladresse als Variable verwenden: Wenn du die Zelladresse in einer anderen Variable speichern möchtest, kannst du dies wie folgt tun:

    Dim rngZelle As Range
    Dim rngZelle2 As Range
    Set rngZelle = Range("A65536").End(xlUp)
    Set rngZelle2 = rngZelle
    MsgBox rngZelle2.Address
  3. Aktive Zelle in Variable speichern: Wenn du die aktive Zelle in einer Variable speichern willst, kannst du dies mit folgendem Code tun:

    Dim aktuelleZelle As Range
    Set aktuelleZelle = ActiveCell
    MsgBox aktuelleZelle.Address

Häufige Fehler und Lösungen

  • Blockvariable nicht dimensioniert: Wenn du eine Variable wie a ohne Typdeklaration verwendest, kann es zu einem Fehler kommen. Deklariere die Variable immer mit dem entsprechenden Typ, z.B.:

    Dim a As String
    a = Selection.SpecialCells(xlCellTypeLastCell).Address
  • String statt Range: Wenn du versuchst, eine Variable als Range zu verwenden, die eigentlich ein String ist, bekommst du möglicherweise einen Fehler. Stelle sicher, dass du die Adresse korrekt umwandelst:

    Dim a As String
    a = Selection.SpecialCells(xlCellTypeLastCell).Address
    Range(a).Select

Alternative Methoden

Eine alternative Methode, um die Adresse einer Zelle zu speichern, ist die Verwendung der Cells-Funktion:

Dim rngZelle As Range
Set rngZelle = Cells(Rows.Count, 1).End(xlUp) ' Letzte Zelle in Spalte A
MsgBox rngZelle.Address

Diese Methode ist besonders nützlich, wenn du mit sehr großen Tabellen arbeitest und die maximale Zeilenzahl nicht kennst.


Praktische Beispiele

Beispiel für das Löschen von Inhalten: Wenn du alle Inhalte außer Formeln löschen möchtest, kannst du folgenden Code verwenden:

Sub alles_ausser_formeln_weg()
    Dim rngC As Range
    For Each rngC In ActiveSheet.UsedRange
        If Not rngC.HasFormula Then
            rngC.ClearContents
        End If
    Next
End Sub

Hier wird eine Schleife verwendet, um jede Zelle im verwendeten Bereich zu durchlaufen und nur die Zellen zu löschen, die keine Formeln enthalten.


Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich dazu, alle Variablen zu deklarieren, was Fehler durch nicht deklarierte Variablen vermeidet.
  • Nutze With-Anweisungen: Wenn du mehrere Eigenschaften einer Zelle oder eines Bereichs festlegen musst, verwende With, um deinen Code zu vereinfachen.

    With rngZelle
        .Interior.Color = RGB(255, 255, 0) ' Hintergrundfarbe ändern
        .Font.Bold = True ' Text fett machen
    End With

FAQ: Häufige Fragen

1. Wie kann ich die Adresse einer Zelle in einer String-Variablen speichern?
Du kannst die Adresse einer Zelle einfach in einem String speichern, indem du die Address-Eigenschaft verwendest:

Dim a As String
a = rngZelle.Address

2. Wie verwende ich eine Zelladresse als Variable in einer Funktion?
Du kannst die Adresse einer Zelle als String übergeben und dann in einer Funktion verwenden:

Sub BeispielFunktion(zellAdresse As String)
    Range(zellAdresse).Value = "Hallo Welt!"
End Sub

Wenn du diese Funktion aufrufst, kannst du die Adresse wie folgt übergeben:

BeispielFunktion rngZelle.Address

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