我怎样才能在Excel VBA中创建这种集/集合?

时间:2014-12-18 17:00:48

标签: excel vba

我很难用谷歌搜索这个因为“设置”通常会返回“set object = nothing”之类的结果,这不是我想要的。

我正在尝试创建一个对象,允许我跨两列收集所有唯一值的值,按A然后B排序。例如:

Column A Column B

USA      Michigan
USA      Alabama
USA      Alabama
USA      Alabama
Canada   Quebec

我想要一个按此顺序保存值(Canada, Quebec), (USA, Alabama), (USA, Michigan)的对象(A是按字母顺序排列的,然后在每个A中,按字母顺序排序B)。

然而,我完全失去了如何做到这一点。起初我以为我需要一个字典对象,但这对我的目标来说并不完全正确。然后我想也许需要一个Collection,但这似乎也不是正确的。

1 个答案:

答案 0 :(得分:0)

您可以制作 Collection ,如:

Sub Collectables()
    Dim c As Collection, N As Long
    Set c = New Collection
    N = Cells(Rows.Count, "A").End(xlUp).Row
    On Error Resume Next
    For i = 1 To N
        t = Cells(i, 1).Value & ", " & Cells(i, 2).Value
        ky = CStr(t)
        c.Add t, ky
    Next i

    On Error GoTo 0
    MsgBox c.Count
End Sub