将vb.net字典转换为vba字典 [英] Converting a vb.net dictionary to a vba dictionary

查看:293
本文介绍了将vb.net字典转换为vba字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我发现这个链接,这表明vb.net中的字典与vba中的runtime.scripting字典不同。



我无法在评论中建议的链接中运气。



这里是vb.net代码:

 公共函数ReturnDict()作为字典(字符串,整数)
Dim dict As New Dictionary(Of String,Integer)
dict.Add(a,10)
dict.Add(b,11)
返回dict
结束函数



以下是vba代码:

 函数MyReturnDict ()
Dim classLib As New MyVBClass.Class1
设置MyDict = classLib.ReturnDict()
\\do使用字典的东西
MyReturnDict =结果
结束函数

任何帮助/建议都将非常感激!

解决方案

Hans Passant的解决方案完全解决了这个问题:

$ VB
$ b

在VB.net中, p>

 公共函数ReturnDict()As System.Collections.IDictionary 

或引用scrrun.dll和:

 公共函数ReturnDict .Dictionary 
Dim dict As New Scripting.Dictionary

后一种解决方案提供了一个VBA字典可以作为一个人喜欢使用。


I was pleased to find that I could call structs that I had set up in vb.net straight into excel vba - using COM visible and registering using regasm.exe.

I am struggling to do the same with a dictionary created in vb.net.

I found this link which suggested that the dictionary in vb.net was not the same as the runtime.scripting dictionary found in vba.

I was unable to have much luck with the links suggested in the comments though.

Here is the vb.net code:

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

Here is the vba code:

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

Any help/advice would be much appreciated!

解决方案

Hans Passant's solutions in the comments above perfectly solved the problem:

In VB.net, either use:

Public Function ReturnDict() As System.Collections.IDictionary

or reference scrrun.dll and:

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

The latter solution provides a VBA dictionary that can be used as one would like.

这篇关于将vb.net字典转换为vba字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆