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

时间:2015-05-16 01:28:16

标签: vb.net vba excel-vba dictionary com

我很高兴地发现我可以将我在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

非常感谢任何帮助/建议!

1 个答案:

答案 0 :(得分:1)

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字典。