ActiveX组件不能创build对象VBA运行时错误

第1步:创buildExcel 2010加载项

我创build了一个新的项目,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步:configuration构build事件

我configuration了专业版的构build事件

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

这将注册该DLL,以便它将在Excel中的references列中可用

第3步:在Excelmacros中添加引用

我创build了一个模块,在工具 – >参考中,我添加了构buildExcel加载项目后可用的NameProvider (该程序集/项目的名称)加载项

我试图创build一个对象,添加引用

 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文件夹中的regasm将其注册到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