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

Forumthread: VBA Umwandlung Cells(1,1) in Range(A1)

VBA Umwandlung Cells(1,1) in Range(A1)
loca
Hallo Zusammen
Einige VBA Funktionen (z.B. Pivot) verlangen eine Schreibweise im Stil von Range(A1). Oft kenne ich den Bereich aber nur via Variabeln im Sinne von Cells(x,y). Wie kann ich das umwandel?
Besten Dank und Gruss
loca
Anzeige

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

Betreff
Benutzer
Anzeige
AW: VBA Umwandlung Cells(1,1) in Range(A1)
27.07.2011 15:34:43
Yal
Cells(x, y).Address
VBA: Zelladressen in Z1S1-Schreibweise umwandeln
27.07.2011 15:36:14
NoNet
Hallo Loca,
das klappt so :
Range("C5").Address(1,1,xlR1C1) ergibt R5C3 (also: Row 5, Column 3)
Gruß, NoNet
AW: VBA Umwandlung Cells(1,1) in Range(A1)
27.07.2011 15:41:12
fcs
Hallo Ioca,
du kannst die Address-Eigenschaft des Bereiches abfragen.
Gruß
Franz
Sub aaTest()
Dim sAdresse As String, Zeile&, Spalte&
sAdresse = Cells(1, 2).Address(ReferenceStyle:=xlA1)
MsgBox "Cells(1, 2).Adress : " & sAdresse
sAdresse = Range(Columns(1), Columns(2)).Address(ReferenceStyle:=xlA1)
MsgBox "Range(Columns(1), Columns(2)).Address : " & sAdresse
Zeile = 10: Spalte = 5
sAdresse = Range(Cells(1, 1), Cells(Zeile, Spalte)).Address(ReferenceStyle:=xlA1)
MsgBox "Range(Cells(1, 1), Cells(" & Zeile & ", " & Spalte & ")).Address : " & sAdresse
End Sub

Anzeige
AW: VBA Umwandlung Cells(1,1) in Range(A1)
27.07.2011 15:45:50
loca
besten dank euch allen.
gruss
loca
;
Anzeige
Anzeige

Infobox / Tutorial

Umwandlung von Cells(x, y) in Range(A1) mit VBA


Schritt-für-Schritt-Anleitung

Um eine Umwandlung von Cells(x, y) in die Range(A1)-Schreibweise durchzuführen, kannst du die .Address-Eigenschaft von VBA nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsm)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub Umwandeln()
        Dim sAdresse As String
        Dim Zeile As Long, Spalte As Long
    
        Zeile = 1
        Spalte = 1
    
        ' Umwandlung von Cells(1, 1) in Range(A1)
        sAdresse = Cells(Zeile, Spalte).Address(ReferenceStyle:=xlA1)
        MsgBox "Die Adresse von Cells(1, 1) ist: " & sAdresse
    End Sub
  4. Führe das Makro aus: Klicke auf F5 oder gehe zu Run > Run Sub/UserForm.

Damit erhältst du die Adresse von Cells(1, 1) in der A1-Schreibweise.


Häufige Fehler und Lösungen

  • Fehler: "Method 'Address' of object 'Range' failed"

    • Lösung: Stelle sicher, dass die Variablen Zeile und Spalte gültige Werte enthalten, die innerhalb des Bereichs deiner Excel-Tabelle liegen.
  • Fehler: Falsche Schreibweise in der Adresse

    • Lösung: Überprüfe, ob du die korrekte ReferenceStyle-Option (z.B. xlA1 oder xlR1C1) verwendest.

Alternative Methoden

Eine alternative Methode zur Umwandlung von Cells in Range ist die Verwendung der Range-Funktion direkt:

Sub AlternativeUmwandlung()
    Dim Zeile As Long, Spalte As Long
    Zeile = 1
    Spalte = 1

    ' Alternative Methode
    MsgBox Range(Cells(Zeile, Spalte), Cells(Zeile + 1, Spalte + 1)).Address
End Sub

Diese Methode ist besonders nützlich, wenn du einen Bereich von Zellen definieren möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, die die Verwendung von Cells und Range demonstrieren:

  1. Einzelne Zelle:

    MsgBox Cells(1, 1).Address
  2. Bereich von Zellen:

    MsgBox Range(Cells(1, 1), Cells(2, 2)).Address
  3. Umwandlung in R1C1-Schreibweise:

    MsgBox Cells(1, 1).Address(ReferenceStyle:=xlR1C1)

Jedes dieser Beispiele zeigt, wie du mit VBA die Adressen von Zellen unterschiedlicher Schreibweisen ermitteln kannst.


Tipps für Profis

  • Nutze die .Address-Eigenschaft, um die Adresse von Cells(x, y) dynamisch zu erstellen. Das ist besonders nützlich, wenn du mit variablen Zeilen und Spalten arbeitest.
  • Experimentiere mit den ReferenceStyle-Optionen, um die für deine Anforderungen passende Schreibweise zu finden.
  • Wenn du viele Zellen umwandeln musst, erwäge, eine Funktion zu erstellen, die die Umwandlung übernimmt und dir die Adressen in einem Array zurückgibt.

FAQ: Häufige Fragen

1. Wie kann ich die Adresse ohne das Dollarzeichen ($) erhalten?
Du kannst die Address-Methode mit dem Parameter False verwenden:

Cells(1, 1).Address(False, False)

2. Was ist der Unterschied zwischen xlA1 und xlR1C1?
xlA1 verwendet die A1-Schreibweise, während xlR1C1 die R1C1-Schreibweise nutzt, die auf Zeilen- und Spaltennummern basiert.

3. Wie kann ich die Umwandlung in anderen Zellen automatisieren?
Du kannst eine Schleife verwenden, um mehrere Zellen zu durchlaufen und deren Adressen zu ermitteln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige