在C#中引用VBA程序集

时间:2010-09-05 05:10:29

标签: c# vba assembly-references

如何在Visual Studio 2010中引用C#应用程序中的VBA程序集?

我在“添加引用”对话框中找不到它。

这就是我需要它的原因:

  

错误1类型“VBA.Collection”在未引用的程序集中定义。您必须添加对程序集“VBA,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = null”的引用。 ......

3 个答案:

答案 0 :(得分:4)

VBA有很多版本,集成在各种应用程序中。按版本号,我猜你需要使用Project + Add Reference,Browse选项卡,选择c:\ windows \ system32 \ msvbvm60.dll。这是VB6的运行时支持模块。它确实在VBA名称空间中有一个Collection类。

请尝试仔细检查组件是否是用VB6编写的。部署可能很有趣。

答案 1 :(得分:1)

“程序集”是一组打包在公共DLL或EXE中的.NET函数。 VBA不是.NET,因此它不作为程序集存在。但是,您可以通过COM Interop层访问VBA组件。

我认为你正在寻找的是这个

http://support.microsoft.com/?kbid=323737

答案 2 :(得分:0)

你真的不需要C#中的VBA.Collection类型,你有更好的收集结构可用。 Generic.List,Generic.Dictionary等,如果你看看那些你很有可能找到你需要的东西。

这些是强类型的,因此您不会转换为其他类型。如果您需要VBA“Variant”类型,则可以使用HashTable。