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