Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中引用VBA程序集#_C#_Vba_Assembly References - Fatal编程技术网

C# 在C中引用VBA程序集#

C# 在C中引用VBA程序集#,c#,vba,assembly-references,C#,Vba,Assembly References,如何在Visual Studio 2010的C#应用程序中引用VBA程序集 我在“添加引用”对话框中找不到它 这就是我需要它的原因: 错误1在未引用的程序集中定义了类型“VBA.Collection”。必须添加对程序集“VBA,版本=6.0.0.0,区域性=中性,PublicKeyToken=null”的引用 在C#中确实不需要VBA.Collection类型,可以使用更好的集合结构。 泛型。列表,泛型。字典等,如果你看看这些,你很可能会找到你需要的 这些类型是强类型的,因此您不会强制转换为其他

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

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

这就是我需要它的原因:

错误1在未引用的程序集中定义了类型“VBA.Collection”。必须添加对程序集“VBA,版本=6.0.0.0,区域性=中性,PublicKeyToken=null”的引用


在C#中确实不需要VBA.Collection类型,可以使用更好的集合结构。 泛型。列表,泛型。字典等,如果你看看这些,你很可能会找到你需要的

这些类型是强类型的,因此您不会强制转换为其他类型。如果需要VBA“Variant”类型,可以使用哈希表。“assembly”是一组打包在公共DLL或EXE中的.NET函数。VBA不是.NET,因此它不作为程序集存在。但是,您可以通过COM互操作层访问VBA组件

我想你可能在找这个


VBA有很多版本,集成在各种应用程序中。根据版本号,我猜您需要使用Project+添加引用,浏览选项卡,选择c:\windows\system32\msvbvm60.dll。这是VB6的运行时支持模块。它在VBA命名空间中确实有一个集合类


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

我同意。但问题是,我正在使用的COM正在返回VBA.CollectionI我认为这就是答案。另一个可能导致“System.InvalidCastException”。