我在使用使用 C DLL 的 Excel VBA 应用程序时遇到问题。 DLL 始终存储在电子表格上方的目录中,并且使用以下命令从 VBA 中调用其方法:
#If Win64 Then
Public Declare PtrSafe Function <function name> Lib "..\<dllname>" () As Long
#else
Declare Function <function name> Lib "..\<dllname>" () As Long
#end if
您可以将这两个文件及其目录结构打包在一个 zip 文件中,然后在 Windows 安装(不同版本和 32 位或 64 位)中移动它,它可以正常工作,除了在一台计算机上,我们不知道为什么。我们得到的只是一个错误,即程序无法从调用 dll 方法的 VBA 方法中在 ..\处找到 dll。安装 MFC100.dll 解决了之前的运行时错误 53 问题,这使我们达到了现在的目标。
如果您对如何解决这个问题有任何建议,或者尝试什么的想法,我将非常感激, 詹姆斯
最佳答案
如果实际上问题是缺少 DLL 的依赖项之一,VBA 往往会提示它“找不到”DLL。我怀疑这就是问题所在。尝试(重新)安装Visual C++ libraries 。或者,在 Dependency Walker 中打开有问题的 DLL。 (或类似的工具)来准确找出它想要什么。
关于Windows DLL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457619/