繁体   English   中英

ActiveX组件无法创建对象VBA运行时错误

[英]ActiveX component can't create object VBA runtime error

步骤1:创建Excel 2010加载项

我创建了一个新项目Excel 2010加载项.Net 4框架

我在“ Name.cs”上添加了一个类文件,在“ iName.cs”接口上添加了一个函数

[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface iName
{
string getName();
}
[ClassInterface(ClassInterfaceType.None)]
public class Name 
{
public string getName()
{
 return "Hello";
} 
}

步骤2:配置构建事件

我配置了专业版的构建事件

"%Windir%\Microsoft.NET\Framework\v4.0.30319\regasm" /codebase /tlb 
"$(MSBuildProjectDirectory)\$(OutputPath)$(AssemblyName).dll"

这将注册Dll,以便在Excel的“ references列中可用

步骤3:在Excel宏中添加引用

我创建了一个模块,在“工具”->“引用”中添加了NameProvider (该程序集/项目的名称)加载项,在我构建Excel加载项项目后可以使用

我试图为添加的参考创建对象

Public Sub test()
Dim nameObj as NameProvider.Name
Dim name as string
Set nameObj = new NameProvider.Name  'error 429 occurs here
name = nameObj.getName()  'getName function automatically comes after .
End Sub

对于Office 64位,您需要将程序集编译为与x64兼容,并通过使用Framework 64文件夹中的重载向64位框架注册该程序集。

"%Windir%\Microsoft.NET\Framework64\v4.0.30319\regasm" /codebase /tlb 
"$(MSBuildProjectDirectory)\$(OutputPath)$(AssemblyName).dll"

%Windir%\\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ regasm->%Windir%\\ Microsoft.NET \\ Framework 64 \\ v4.0.30319 \\ regasm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM