2017-07-17 626 views
0

我有一個主要的大表。的,我想柱VBA將集合添加到字典或一個鍵的多個值

  • 名稱
  • 值1
  • 值2
  • 標誌1
  • 標誌2 ​​

標誌1如果值1>值2,標誌2如果值1 = 0.45。顯然每個人有超過5K +的獨特記錄。我想知道是否可以將上面的內容作爲集合存儲並將其添加到名稱作爲鍵和集合作爲項目的字典中?

謝謝

回答

0

在集合中,您可以使用任何對象作爲項目。因此,您可以將Array,Object或Collection放在那裏。在這些,你可能會放多個值。 在這裏你可以用Array作爲Item。運行它並在即時窗口中檢查結果。

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解決方案:

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 
------------------- 
+0

我想結合起來,與原因字典是因爲我會有重複的行,例如您的例如多個2所以希望能夠使用dictionary的存在特徵 –

+0

您可以將Collection對象更改爲字典對象,邏輯完全相同。 @VarunYadav – Vityata

+0

使用字典時,請注意,如果要編輯字典,則需要將字典從字典中提取出來:https://stackoverflow.com/questions/26390638/vba-dictionary-with-dynamic-arrays/26390929# 26390929 –

相關問題