![](/img/trans.png)
[英]In VBA : Dim a, b as String ==> only b is a String. Can I get a reference to this behavior?
[英]How can I get reference to a variable by using a string, in VBA?
我有一個變量strFunction
,然后我有另一個字符串strName = "strFunction"
,我想知道如何使用 strName 獲取 strFunction 的值。
例如,像 getValue(strName) 這樣的東西給了我 strFunction 的值。 是否可以訪問 VBA?
謝謝!
編輯:
我有一個strFunction
字符串,它是一個 const 字符串。 在我的代碼中,我想使用Len("strFunction")
來測試它的長度,但我得到的是長度“strFunction”。 所以我需要一個 get-value-out-of-variable-name function。 我試過 Eval(),但它不能這樣做,即使我寫了一個get_strFunction()
, eval("get_strFunction()")
給我錯誤,告訴我它找不到它。
Private Const strFunction as String = "FilterByType_1"
Private Function get_strFunction()
get_strFunction = strFunction
End Function
"我有一個變量strFunction,然后我還有另一個字符串strName = "strFunction",我想知道如何使用strName 來獲取strFunction 的值。 "
strFunction可以是 VBA 集合中項目的鍵,而不是變量。
Public Sub darkjh()
Dim strName As String
Dim col As Collection
Set col = New Collection
col.Add "FilterByType_1", "strFunction"
strName = "strFunction"
Debug.Print col(strName)
Set col = Nothing
End Sub
編輯:您可以使用 Scripting.Dictionary,而不是 VBA 集合。
Dim strName As String
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "strFunction", "FilterByType_1"
strName = "strFunction"
Debug.Print dict(strName)
Set dict = Nothing
Option Compare Database
Dim a As String
Dim b As String
Public Sub test()
a = "b"
b = "test-string"
Debug.Print Eval("get" & a & "()")
End Sub
Public Function getB() As String
getB = b
End Function
Output
>>test
test-string
eval(a)
不起作用,所以我不得不為變量編寫一個“getter”並評估 function: eval("get" & a & "()")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.