我熟悉在VBA中使用词典,但我想尝试一下SortedList。我通读了msdn doc并认为它使用与字典相同的.Add
结构。
我一直在努力实际填充SortedList。我不确定我所做的与this answer的How to make a list in VBA (not a dictionary)?有什么不同。 我认为VTC我自己的问题是重复的,但不知怎的,这不是一回事。
我使用的是一个简单的清单:
这是代码 -
Option Explicit
Sub testing()
Dim sortList As Object
Dim dict As Object
Set sortList = CreateObject("System.Collections.SortedList")
Set dict = CreateObject("Scripting.Dictionary")
Dim i As Long
Dim key As Variant
Dim item As Variant
For i = 1 To 7
key = Sheet1.Cells(i, 1)
item = Sheet1.Cells(i, 2)
dict.Add key, item
sortList.Add key, item
Next
End Sub
我甚至采取了额外步骤(以防万一)并完成了所有Variant
因为我知道SortedList
想要Objects
。
我似乎无法从SortList
中检索任何内容我错过了什么?
我试图以我检索词典的方式检索它
For Each key In sortList.keys
Sheet1.Cells(i, 6) = key
Sheet1.Cells(i, 7) = sortList.item(key)
Next
答案 0 :(得分:0)
我从SortedList
中获取了错误的键和项目For i = 0 To sortList.Count - 1
key = sortList.getkey(i)
item = sortList.item(key)
Sheet1.Cells(i + 1, 6) = key
Sheet1.Cells(i + 1, 7) = item
Next
与词典不同 -
i = 1
For Each key In dict
Sheet1.Cells(i, 6) = key
Sheet1.Cells(i, 7) = dict(key)
i = i + 1
Next