簡體   English   中英

如何在 VBA 中使用字符串獲取對變量的引用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM