【发布时间】:2017-07-17 12:50:57
【问题描述】:
我有一张主要的大桌子。其中我要专栏
- 姓名
- 值 1
- 值 2
- 标志 1
- 标志 2
如果值 1 > 值 2,则标志 1,如果值 1 = 0.45,则标志 2。显然,每个都有超过 5K+ 的唯一记录。我想知道是否可以将上面存储为集合并将其添加到字典中,名称为键,集合为项?
谢谢
【问题讨论】:
标签: vba dictionary collections
我有一张主要的大桌子。其中我要专栏
如果值 1 > 值 2,则标志 1,如果值 1 = 0.45,则标志 2。显然,每个都有超过 5K+ 的唯一记录。我想知道是否可以将上面存储为集合并将其添加到字典中,名称为键,集合为项?
谢谢
【问题讨论】:
标签: vba dictionary collections
在集合中,您可以使用任何对象作为项目。因此,您可以将 Array、Object 或 Collection 放在那里。在这些中,您可以放置多个值。 在这里,您将数组作为项目。运行它并在即时窗口中检查结果。
Option Explicit
Public Sub TestMe()
Dim myCol As New Collection
Dim myVar As Variant
myCol.Add Array("A", "B"), "2"
myCol.Add Array("C", "D"), "3"
myCol.Add Array("F", "G", "H"), "6"
For Each myVar In myCol
Debug.Print myVar(LBound(myVar))
Debug.Print myVar(UBound(myVar))
Debug.Print "-------------------"
Next myVar
End Sub
这是带有脚本的解决方案。字典:
Option Explicit
Public Sub TestMe()
Dim myCol As Object
Dim myVar As Variant
Set myCol = CreateObject("Scripting.Dictionary")
myCol.Add 2, Array("A", "B")
myCol.Add 3, Array("C", "D")
myCol.Add 6, Array("F", "G", "H")
For Each myVar In myCol.Keys
Debug.Print myCol(myVar)(LBound(myCol(myVar)))
Debug.Print myCol(myVar)(UBound(myCol(myVar)))
Debug.Print "-------------------"
Next myVar
End Sub
这是即时窗口中的结果:
A
B
-------------------
C
D
-------------------
F
H
-------------------
【讨论】: