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

Forumthread: Syntax für strukturierte Verweise in VBA

Syntax für strukturierte Verweise in VBA
30.01.2018 10:09:59
Markus
Hallo zusammen,
ich habe für mich die strukturierten Verweise in Excel entdeckt und versuche nun, auch in vba auf diese zuzugreifen. Allerdings will mir der Zugriff auf die Überschriften (#Kopfzeilen) nicht gelingen.
Was in der Formelsprache mit =MeineTabelle[#Kopfzeilen] funktioniert, will mir in vba nicht gelingen.

Dim sSheet As String
Dim sBereich As String
Dim rBereich As Range
Dim x As String
Dim y As Range
sSheet = Sheets("VBA Cache").Range("vbaArbeitsblattname")
sBereich = Sheets("VBA Cache").Range("vbaBenannterBereich")
Set rBereich = Sheets(sSheet).Range("MeineTabelle[#Kopfzeilen]")
' Set rBereich = Sheets(sSheet).Range(sBereich & "[#Kopfzeilen]")
For Each y In rBereich.Cells
x = y.Value
Next

Bin für jeden hilfreichen Link / Tipp dankbar.
Vielleicht auch für einen anderen Ansatz? Das Ziel ist "einfach", die Spaltenüberschriften zulesen und zu "erkennen" in welcher Spalte ich bin, da die Reihenfolge nicht vorbestimmt ist. Ich erwarte z. B. eine Reihe von Namen, aber ich kann ich nicht davon ausgehen, dass diese aufsteigend und/oder irgendwie sortiert ist.
Vielen Dank im voraus!
Markus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Syntax für strukturierte Verweise in VBA
30.01.2018 10:24:36
EtoPHG
Hallo Markus,
Auch für "Tabellen" in Blättern gilt: VBA versteht nur Englisch!
Beispiel:
Sub StrukturierterHeader()
Dim HeaderZeile As Range
Set HeaderZeile = Worksheets("Blatt mit Tabelle").Range("Tabelle1[#Headers]")
MsgBox HeaderZeile.Address
End Sub

Gruess Hansueli
Anzeige
AW: Syntax für strukturierte Verweise in VBA
30.01.2018 10:29:37
Markus
Hallo Hansueli,
das ist ja zum Heulen. Ich muss nicht erwähnen, dass es jetzt auch bei mir funktioniert, oder?
Ich hatte schon befürchtet, dass ich etwas sehr nahe liegendes übersehe - aber das.
Vielen vielen Dank - auch für die schnelle Antwort.
Viele Grüße
Markuks
Keine Ursache, andere Eigenschaften findest du
30.01.2018 10:43:10
EtoPHG
unter diesem Link!, Gruess Hansueli
Anzeige
AW: Keine Ursache, andere Eigenschaften findest du
30.01.2018 11:14:30
Markus
Hallo Hansueli,
vielen Dank für den Link. Diese Seite hatte ich bei meiner Suche auch gefunden - aber war der irrigen Meinungen, dass ich mir die Sprache der Schlüsselwörter "aussuchen" dürfte.
Jetzt ist mir das auch klar geworden, da die Formelsprache Deutsch "zulässt", vba aber auf Englisch besteht. Denn alle meine Fundstellen bezogen sich auf Beispiele für die Formelsprache (Beispiel https://it-service-ruhr.de/tipp/excel-strukturierte-verweise).
Mit Deinem Hinweis werde ich sicherlich auch noch ein paar andere Problemstellungen lösen können, die ich hinten angestellt habe ;-)
Vielen Dank noch einmal
Markus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zugriff auf strukturierte Verweise in VBA


Schritt-für-Schritt-Anleitung

Um in VBA auf die Strukturierten Verweise einer Excel Tabelle zuzugreifen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm), wähle Einfügen und dann Modul.
  3. Schreibe den Code:

    • Verwende folgenden Beispielcode, um auf die Überschriften einer strukturierten Tabelle zuzugreifen:
    Sub StrukturierterHeader()
       Dim HeaderZeile As Range
       Set HeaderZeile = Worksheets("Blatt mit Tabelle").Range("Tabelle1[#Headers]")
       MsgBox HeaderZeile.Address
    End Sub
  4. Führe den Code aus:

    • Drücke F5, um den Code auszuführen und die Adresse der Kopfzeile anzuzeigen.

Häufige Fehler und Lösungen

  • Problem: Zugriff auf die Kopfzeilen funktioniert nicht.

    • Lösung: Stelle sicher, dass du die englische Syntax verwendest, wie in Tabelle1[#Headers].
  • Problem: Fehlermeldung „Objektvariable oder With-Blockvariable nicht festgelegt“.

    • Lösung: Überprüfe, ob der Tabellenname korrekt angegeben ist und die Tabelle existiert.

Alternative Methoden

Wenn du die strukturierten Verweise nicht direkt in VBA verwenden möchtest, kannst du folgende Methoden ausprobieren:

  1. Direkter Zellzugriff:

    • Statt auf den strukturierten Verweis zuzugreifen, kannst du direkt auf die Zelle zugreifen, z.B.:
    Dim zelle As Range
    Set zelle = Worksheets("Blatt mit Tabelle").Cells(1, 1) ' Zugriff auf Zelle A1
  2. Verwendung von .ListObjects:

    • Du kannst auch auf die ListObjects einer Tabelle zugreifen:
    Dim tabelle As ListObject
    Set tabelle = Worksheets("Blatt mit Tabelle").ListObjects("Tabelle1")
    MsgBox tabelle.HeaderRowRange.Address

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du strukturierte Verweise in VBA nutzen kannst:

  • Überschrift auslesen:

    Sub AuslesenHeader()
       Dim header As String
       header = Worksheets("Blatt mit Tabelle").Range("Tabelle1[#Headers]").Cells(1, 1).Value
       MsgBox "Die erste Überschrift ist: " & header
    End Sub
  • Spaltenüberschriften durchlaufen:

    Sub DurchlaufenHeaders()
       Dim cell As Range
       For Each cell In Worksheets("Blatt mit Tabelle").Range("Tabelle1[#Headers]").Cells
           Debug.Print cell.Value
       Next cell
    End Sub

Tipps für Profis

  • Verweise fixieren: Du kannst strukturierte Verweise fixieren, um sicherzustellen, dass sie immer auf die richtigen Daten zugreifen, indem du die Tabellen korrekt benennst und die Bereiche überprüfst.

  • Verwendung der .Name-Eigenschaft: Um sicherzustellen, dass du die richtigen Namen verwendest, nutze die Name-Eigenschaft der Tabellenobjekte.

  • Englische Begriffe verwenden: Denke daran, dass VBA nur die englische Syntax akzeptiert. Beispielsweise wird #Headers anstelle von #Kopfzeilen verwendet.


FAQ: Häufige Fragen

1. Warum funktioniert der Zugriff auf die Kopfzeilen nicht? VBA benötigt die englische Syntax für strukturierte Verweise. Überprüfe, ob du die korrekten Begriffe verwendest.

2. Kann ich strukturierte Verweise in Formeln verwenden? Ja, in Excel-Formeln kannst du strukturierte Verweise wie =MeineTabelle[#Kopfzeilen] verwenden, um auf die Daten zuzugreifen. In VBA musst du jedoch die englische Schreibweise verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige