字典可能會在這種情況下幫助,它是爲腳本設計的,雖然它w不要讓你創建「動態」變量,字典的項目是動態的,並且可以用作「變量」的類似目的。
Dim Teams as Object
Set Teams = CreateObject("Scripting.Dictionary")
For i = 1 To x
Teams(i) = "some value"
Next
後來,查詢值,只是在項目調用諸如:
MsgBox Teams(i)
字典包含鍵/值對,鍵必須是唯一的。分配到現有鍵將覆蓋它的值,例如:
Teams(3) = "Detroit"
Teams(3) = "Chicago"
Debug.Print Teams(3) '## This will print "Chicago"
可以使用.Exist
方法,如果你需要擔心覆蓋或不檢查存在。
If Not Teams.Exist(3) Then
Teams(3) = "blah"
Else:
'Teams(3) already exists, so maybe we do something different here
End If
您可以使用.Count
方法獲取詞典中的項目數。
MsgBox "There are " & Teams.Count & " Teams.", vbInfo
甲字典的鍵必須是整數或字符串,但這些值可以是任何數據類型(包括數組,甚至Object
數據類型,如Collection
,Worksheet
,Application
,嵌套字典等,使用Set
關鍵字),因此,例如,你可以快譯通工作表在工作簿:
Dim ws as Worksheet, dict as Object
Set dict = CreateObject("Scripting.Dictionary")
For each ws in ActiveWorkbook.Worksheets
Set dict(ws.Name) = ws
Next
你正在考慮的[陣列(https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx) – litelite
你熟悉字典嗎? – jellz77
我對字典不熟悉;他們能幫助這種情況嗎? – reggie86