簡體   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