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

Forumthread: Variablenname in String -> Wert zuweisen?

Variablenname in String -> Wert zuweisen?
02.08.2013 10:07:24
Michael
Hi.
Abfrage einer Datenbank mit 20 Einträgen:
Spalte 1: Variable
Spalte 2: Pfad
Ich habe somit in einen String der meinen Variablen-Namen entspricht (z.B. "PathCustomer"), in einem weiteren dann den Pfad selbst.
Ist es mit einem Einzeiler möglich, Variablen mit dem Namen aus dem String einen weiteren String zuzuweisen?
So was vie
|Variable("PathCustomer") = Pfad
anstelle
|PathCustomer = Pfad
Hoffe das ist jetzt nicht zu verwirrend ...
Danke
Michi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Variablenname in String -> Wert zuweisen?
02.08.2013 12:00:00
JACKD
Hallo Michi
ja es ist verwirrend =)
was willst du denn machen?
und wie liesst du bisher die Werte ein..
Vielleicht einfach kurz den Code einstellen
Grüße

AW: Erl. (geht nicht wie gewünscht)
05.08.2013 10:10:05
Michael
Hi.
Möchte einer Variable einen Wert indirekt zuweisen, über ihren Namen halt.
Momentan geht es über eine Schleife und "Select Case"
Dies ist aber wenig flexibel, da ich im Endeffekt alle Variablen-Namen vorhalten muß, auch wenn sie (noch) nicht in der Datenbank abgelegt sind. Indirekt wäre halt ideal gewesen, da ich den Namen der Variable habe, aber ...
... aber nach dem Wink von Luc hab ich mal gegoolet und gefunden, das es leider so nicht geht, sondern nur direkt.
Michi

Anzeige
Nein, SO nicht, aber evtl mit vbFkt ...
03.08.2013 12:18:19
Luc:-?
CallByName, Michi;
allerdings benötigst du hierfür ein übergeordnetes Objekt.
Gruß Luc :-?

AW: Erl. (geht nicht wie gewünscht)
05.08.2013 10:05:17
Michael
Hi Luc.
Danke für den Hinweis, hab jetzt gliech mal nach CallByName gegooglet.
Ergebnis ist, das es auch schon andere vorhatten, aber es anscheinend nicht geht :-/
Hab es jetzt mit einer Schleife und "Select Case" gelöst, ist halt nicht mehr so flexibel wie ich es mir gewünscht hätte.
Grüße Michi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variablenname in String – Wert zuweisen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einer Excel VBA-Variable einen Wert zuzuweisen, indem du den Variablennamen als String verwendest, kannst du die Funktion CallByName nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Variablen deklarieren: Deklariere die Variablen, die du nutzen möchtest. Zum Beispiel:

    Dim PathCustomer As String
  4. Wert zuweisen: Nutze CallByName, um den Wert einer Variable zuzuweisen:

    Dim variableName As String
    variableName = "PathCustomer"
    CallByName Me, variableName, VbLet, "C:\Users\DeinPfad\"

    Hier wird der Wert "C:\Users\DeinPfad\" der Variable PathCustomer zugewiesen.


Häufige Fehler und Lösungen

  1. Fehler: "Typen unverträglich"

    • Lösung: Stelle sicher, dass der Typ der Variablen korrekt deklariert ist. Zum Beispiel, wenn du einen String-Wert zuweist, sollte die Variable als String deklariert sein.
  2. Fehler: "Variable nicht definiert"

    • Lösung: Überprüfe, ob du die Variable korrekt deklariert hast, bevor du ihr einen Wert zuweist.
  3. Fehler: CallByName funktioniert nicht

    • Lösung: Stelle sicher, dass du die richtige Syntax verwendest und dass die Variable, die du ansprechen möchtest, im aktuellen Kontext existiert.

Alternative Methoden

Falls CallByName nicht das gewünschte Ergebnis liefert, kannst du auch mit einer Select Case-Anweisung arbeiten. Hier ist ein Beispiel:

Dim variableName As String
Dim pathValue As String
variableName = "PathCustomer"
pathValue = "C:\Users\DeinPfad\"

Select Case variableName
    Case "PathCustomer"
        PathCustomer = pathValue
    ' Weitere Variablen können hier hinzugefügt werden
End Select

Diese Methode ist jedoch weniger flexibel und erfordert, dass alle möglichen Variablen im Code aufgeführt werden.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Nutzung von CallByName und Select Case:

  1. Wertzuweisung mit CallByName:

    Dim directoryPath As String
    directoryPath = "C:\Users\DeinPfad\"
    CallByName Me, "PathCustomer", VbLet, directoryPath
  2. Wertzuweisung mit Select Case:

    Dim variableName As String
    variableName = "PathCustomer"
    
    Select Case variableName
       Case "PathCustomer"
           PathCustomer = "C:\Users\DeinPfad\"
    End Select

Diese Beispiele zeigen, wie du eine vba variable deklarieren und wert zuweisen kannst, um deine Datenbankabfragen effizienter zu gestalten.


Tipps für Profis

  • Verwendung von Option Explicit: Aktiviere die Option Option Explicit am Anfang deines Moduls. Dies stellt sicher, dass alle Variablen deklariert werden, bevor sie verwendet werden, und hilft, Fehler zu vermeiden.

  • Debugger nutzen: Verwende den Debugger, um den Wert der Variablen während der Ausführung deines Codes zu überprüfen. Dies kann helfen, Probleme schnell zu identifizieren.

  • Dokumentation: Halte deinen Code gut dokumentiert, um die Nachvollziehbarkeit zu gewährleisten, insbesondere wenn du mit dynamischen Variablen arbeitest.


FAQ: Häufige Fragen

1. Kann ich CallByName in einer Schleife verwenden?
Ja, du kannst CallByName in einer Schleife verwenden, um mehrere Variablen dynamisch zu adressieren.

2. Was passiert, wenn ich einen ungültigen Variablennamen in CallByName verwende?
Es wird ein Laufzeitfehler ausgelöst. Stelle sicher, dass der Variablenname korrekt ist und existiert.

3. Ist CallByName die einzige Möglichkeit, um einer Variable einen Wert zuzuweisen?
Nein, du kannst auch die Select Case-Anweisung verwenden, aber CallByName bietet mehr Flexibilität bei dynamischen Variablennamen.

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