Variableninhalt anhand des Variabelnnamens erhalten
Hallo
Ich schreibe an einem Macro in vba unter Excel 2003.
Dort benötige ich ene Funktionalität die mir den Inhalt einer Variable anhand ihres Variabelnnamens liefert.
Versucht hab ich shconmal folgendes:
und
In beiden Fällen sollte eigentlich als Ihnahlt von var3 = "Hallo" stehen.
Beides Funktioniert nicht.
Ich habe auch schon Varianten mit "ExecoteExcel4Macros" und "VarPtr", was aber auch nicht funktionierte.
Im Prinzip suche ich das entsprechende zu "Application.Run" wo man ja auch ein Funktionsname als String angeben kann, nur eben für (String-)Variabeln.
Ich hoffe das mein Vorhaben einigermasen verständlich erklärt ist. Wenn nicht ganz klar einfach nachfragen.
miniversum
Ich schreibe an einem Macro in vba unter Excel 2003.
Dort benötige ich ene Funktionalität die mir den Inhalt einer Variable anhand ihres Variabelnnamens liefert.
Versucht hab ich shconmal folgendes:
var1 = "hallo"
var2 = "var1"
Evaluate "var3=" & var2
MsgBox var3
var1 = "hallo"
var2 = "var1"
var3 = Evaluate(var2)
MsgBox var3
Beides Funktioniert nicht.
Ich habe auch schon Varianten mit "ExecoteExcel4Macros" und "VarPtr", was aber auch nicht funktionierte.
Im Prinzip suche ich das entsprechende zu "Application.Run" wo man ja auch ein Funktionsname als String angeben kann, nur eben für (String-)Variabeln.
Ich hoffe das mein Vorhaben einigermasen verständlich erklärt ist. Wenn nicht ganz klar einfach nachfragen.
miniversum
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 104824
Url: https://administrator.de/contentid/104824
Ausgedruckt am: 03.12.2024 um 18:12 Uhr
2 Kommentare
Neuester Kommentar
Hallo miniversum!
In VBS würde
funktionieren, aber für VBA habe ich leider auch keinen Lösungsvorschlag.
Vielleicht könntest Du für die gewünschte Funktionalität ein "Dictionary" verwenden:
Grüße
bastla
In VBS würde
var1 = "hallo"
var2 = "var1"
var3 = Eval(var2)
MsgBox var3
Vielleicht könntest Du für die gewünschte Funktionalität ein "Dictionary" verwenden:
Set d = CreateObject("Scripting.Dictionary")
d.Add "var1", "hallo"
var2 = "var1"
var3 = d.Item(var2)
MsgBox var3
bastla