Excel Application.RegisterXLL返回false

Excel Application.RegisterXLL返回false,excel,xll,Excel,Xll,我试图调用Application.RegisterXLL在excel 2013中加载我自己的xll,但失败,返回false。我已经检查了宏和加载项设置,但没有效果。有没有办法得到更详细的错误描述?代码如下 mypath = Application.ActiveWorkbook.Path rs = mypath + "\AddIn.xll" rc = Application.RegisterXLL(rs) 任何帮助或见解都将不胜感激。谢谢 如果您的xll依赖于外部DLL,则需要先将当前目录更改

我试图调用Application.RegisterXLL在excel 2013中加载我自己的xll,但失败,返回false。我已经检查了宏和加载项设置,但没有效果。有没有办法得到更详细的错误描述?代码如下

mypath = Application.ActiveWorkbook.Path

rs = mypath + "\AddIn.xll"
rc = Application.RegisterXLL(rs)

任何帮助或见解都将不胜感激。谢谢

如果您的xll依赖于外部DLL,则需要先将当前目录更改为xll文件夹,然后才能调用
Application.RegisterXll

还要确保将所有依赖项与xll放在同一文件夹中


另请参见。

如果您的xll依赖于外部DLL,则在调用
应用程序.RegisterXll
之前,您需要将当前目录更改为xll文件夹

还要确保将所有依赖项与xll放在同一文件夹中


另请参见。

您可以从免费下载Dependency Walker,启动它,然后从其中打开Excel.exe。然后选择Profile->Start Profiling。它将启动Excel(比平常慢2-5倍),并显示一大堆调试信息。然后尝试注册您的XLL,并查看窗口中显示的其他内容。最有可能的是,XLL将以红色列出,希望它能显示问题是出在它本身还是它的一个依赖DLL上。

您可以从免费下载Dependency Walker,启动它,然后从里面打开Excel.exe。然后选择Profile->Start Profiling。它将启动Excel(比平常慢2-5倍),并显示一大堆调试信息。然后尝试注册您的XLL,并查看窗口中显示的其他内容。最有可能的是,XLL将以红色列出,希望它能显示问题是出在它本身还是它的一个依赖DLL上。

确保您的DLL使用与Office运行相同的体系结构(x86 vs x64)进行编译。
尝试将x86 DLL导入x64版本的Excel(或相反版本)将失败并返回
false

确保使用Office运行的相同体系结构(x86与x64)编译DLL。
尝试将x86 DLL导入x64版本的Excel(或相反版本)将失败并返回
false

谢谢你的回复。我尝试了你的解决方案,但是,它不能解决我的问题。我在excel 2013中使用VBA,我调用FileSystem.ChDir设置FileSystem.CurDir并将Application.DefaultFilePath设置为我的xll文件夹,尽管它们的原始值已经设置为我的xll文件夹。我将依赖dll(pthreadVSE2.dll)与我的xll和xls放在同一个文件夹中,不幸的是Application.RegisterXLL调用仍然返回false。有没有其他方法来解决这个该死的问题?@nanyuan也许你可以检查Windows事件查看器以检查是否有错误消息谢谢你的回复。我尝试了你的解决方案,但是,它不能解决我的问题。我在excel 2013中使用VBA,我调用FileSystem.ChDir设置FileSystem.CurDir并将Application.DefaultFilePath设置为我的xll文件夹,尽管它们的原始值已经设置为我的xll文件夹。我将依赖dll(pthreadVSE2.dll)与我的xll和xls放在同一个文件夹中,不幸的是Application.RegisterXLL调用仍然返回false。有没有其他方法来解决这个该死的问题?@nanyuan也许你可以检查Windows事件查看器来检查是否有错误消息