首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA为一个键将集合添加到字典或多个值

VBA为一个键将集合添加到字典或多个值
EN

Stack Overflow用户
提问于 2017-07-17 12:50:57
回答 1查看 6K关注 0票数 0

我有一张大桌子。其中我想要一栏

  • 名字
  • 值1
  • 值2
  • 旗1
  • 旗2

如果值1>值2,则标志1,如果值1= 0.45,则标志2。显然,每个5K+都有唯一的记录。我想知道是否可以将上面的内容存储为集合,并将其添加到以名称为键、集合作为项的字典中?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 12:58:13

在集合中,可以使用任何对象作为项。因此,您可以将Array、Object或Collection放在那里。在这些文件中,您可以放置多个值。这里以Array作为项目。运行它并在“立即”窗口中检查结果。

代码语言:javascript
复制
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

下面是使用脚本.Dictionary的解决方案:

代码语言:javascript
复制
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

这是即时窗口中的结果:

代码语言:javascript
复制
A
B
-------------------
C
D
-------------------
F
H
-------------------
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45144793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档