vba 将项目添加到 SortedList 会导致 "Automation Error"

vba Add Item to SortedList causes an "Automation Error"

为什么下面的代码会报错:-2146233079(80131509).

Sub testSortedList()
    Dim list
    Set list = CreateObject("System.Collections.SortedList")
    list.Add 1978340499, "a"
    list.Add 1, "b"
End Sub

列表的键必须是相同的数据类型。您添加两种不同的数据类型,第一种是 Long 类型,第二种是 Integer 类型,这会抛出错误消息 *failed to compare two elements..."

最简单的解决方法:将 & 附加到 1,这将强制 VBA 将您的常量存储为 Long:

list.Add 1&, "b"

或者为您的键值使用变量:

Dim key as Long
key = 1
list.Add key, "b"