【发布时间】:2012-10-01 00:10:28
【问题描述】:
我必须将 .net 字典或列表类型的对象传递给 VBA。 但是当我在 VBA 端传递 .net 字典时,我无法在 .net 端看到字典的元素。
我的 C# 代码
Dictionary<string,object> dict = new Dictionary<string,object>();
dict.Add("First", "1");
dict.Add("Second", "2");
dict.Add("third", "3");
dict.Add("Forth", "4");
我从 C# 调用 VBA 宏
Application.Run("MyVBAMacro", dict);
在 VBA 端我的宏是
public Sub MyVBAMacro(var as variant)
end Sub
我也试过
public Sub MyVBAMacro(var as Scripting.Dictionary)
end Sub
但对我不起作用。
在 VBA 的 WATCH 窗口中,我没有得到字典元素。
所以我认为 .net 和 VBA 对象不一样。 那么是否有任何解析类可以将我的 .net 对象转换为等效的 VBA 对象?
.net List 对象也有问题。 .net 数组工作正常,但我想将对象的字典或集合类型传递给 VBA。
如果有解决办法,请告诉我。
谢谢, 莫尼尔甘加尔
【问题讨论】:
-
嗨 Monil,this 有帮助吗?
标签: c# vba excel vsto c#-to-vb.net