2017-09-19 4 views
0

eigentlich Ich möchte Variablennamen durch Zellbezug in Blatt übergeben. Wenn diese Variable in der deklarierten Liste des Moduls vorhanden ist, sollte der entsprechende Wert in die Referenzzelle gelangen. Können wir es trotzdem erreichen? Wenn ja, bitte führe mich. Es wird sehr hilfreich sein. Vielen Dank im Voraus.Wie übergeben Variablenname durch Zellreferenz in VBA

+0

Mögliches Duplikat von [Name der Referenzvariablen in Excel vba] (https://stackoverflow.com/q/18336006/11683) – GSerg

Antwort

1

Eine Variable ist ein Symbol. Ein Zeichenfolgenliteral ist ein Wert. VBA hat keine eingebauten Fähigkeiten, es gibt keine Möglichkeit, eine Variable namentlich zu erhalten und ihren Wert zu drucken.

Was Sie können tun, ist ein Dictionary mit dem Namen als Schlüssel hat, und die Werte wie, na ja, Werte:

Private Foo As Long 
Private Bar As Long 
Private Fizz As Long 
Private Buzz As Long 
Option Explicit 

Public Function GetValueByName(ByVal name As String) As Long  
    With New Scripting.Dictionary 
    'initialize every time, so the values are always up-to-date 
     .Add "Foo", Foo 
     .Add "Bar", Bar 
     .Add "Fizz", Fizz 
     .Add "Buzz", Buzz 
     GetValueByName = .Item(name) 
    End With 
End Function 

Erlauben Sie mir ernsthaft die Notwendigkeit/Anforderung auf Frage programmatische Zugriff Symbole mit Namen über eine Arbeitsblattfunktion obwohl: es gibt einen Grund, es wird nicht unterstützt.

Verwandte Themen