将 vb.net 字典转换为 vba 字典

Converting a vb.net dictionary to a vba dictionary

我很高兴地发现我可以调用我在 vb.net 中设置的结构直接进入 excel vba - 使用可见的 COM 并使用 regasm.exe 注册.

我正在努力对 vb.net 中创建的字典做同样的事情。

我发现了这个 link,它表明 vb.net 中的词典与 vba 中的 runtime.scripting 词典不同。

不过,我对评论中建议的链接不太满意。

这里是 vb.net 代码:

Public Function ReturnDict() As Dictionary(Of String, Integer)
    Dim dict As New Dictionary(Of String, Integer)
    dict.Add("a", 10)
    dict.Add("b", 11)
    Return dict
End Function

这里是 vba 代码:

Function MyReturnDict()
   Dim classLib As New MyVBClass.Class1
   Set MyDict = classLib.ReturnDict()
     \do stuff with dictionary
   MyReturnDict = Result
End Function

任何 help/advice 将不胜感激!

Hans Passant在上面评论中的解决方案完美解决了问题:

在VB.net中,要么使用:

Public Function ReturnDict() As System.Collections.IDictionary

或参考 scrrun.dll 和:

Public Function ReturnDict() As Scripting.Dictionary
    Dim dict As New Scripting.Dictionary

后一种解决方案提供了一个 VBA 字典,可以随意使用。