第1步:创建Excel 2010加载项
我创建了一个新项目,Excel 2010加载项,.Net 4框架
我在其中添加了一个类文件" Name.cs",interface" 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宏中添加引用
我在工具中创建了一个模块 - >参考我在构建Excel加载项目后添加了NameProvider
(该程序集/项目的名称)加载项
我尝试为添加的引用创建一个对象
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
答案 0 :(得分:1)
对于Office 64bit,您需要将程序集编译为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 \框架的 64 强> \ v4.0.30319 \ regasm