我知道这是一个简单的问题,但它让我更加恶心。如果我在集合中有一个键/值对,但我似乎无法使用键获取值。我可以使用值获取密钥,但反之亦然。是否有一些神奇的方法来实现这一目标?
例如:
Dim CycleList As Collection
Dim Value as String
Set CycleList = New Collection
CycleList.Add 1, "Some Value"
Value = CycleList(1)
我也试过CycleList.Item(1)并且结果相同,值= 1.
答案 0 :(得分:1)
原因是您告诉VBA将一个带有Some Value
备用键的整数1添加到集合中。当您致电CycleList(1)
时,您要求索引为1的Item
恰好是值1.第二个参数Some Value
表示可用于查找值的备用键你想要的项目。这是一个例子来说明:
Public Sub Foo()
Dim bar As Collection
Set bar = New Collection
bar.Add 1, "Blah"
bar.Add "Foobar"
bar.Add 99
Debug.Print "bar(""Blah""): " & bar("Blah")
Debug.Print "bar(1): " & bar(1)
Debug.Print "bar(2): " & bar(2)
Debug.Print "bar(3): " & bar(3)
End Sub
在调试窗口中调用Foo时的结果:
bar("Blah"): 1
bar(1): 1
bar(2): Foobar
bar(3): 99
请注意,在第一个Debug.Print中,我按键询问值,但在其他情况下,我要求索引值。