我在 Visual Studio 2012 中创建了一个执行计算的简单 dll。我使用以下语法从 Excel 2010 中的 VBA 调用此 dll:
Declare Sub MyFunction Lib "MyDll.dll" (ByRef param1 As Double, ByVal param2 As Double)
这个函数在我的开发机器上运行得很好。当我尝试在另一台计算机上运行此 dll 时,出现以下错误:
Run-time error '53': File not found: MyDll.dll
但是,当我以管理员(提升)模式运行 Excel(在另一台计算机上)时,我没有收到此错误并且一切正常。
有什么方法可以在不让用户以管理员身份运行 Excel 的情况下使它正常工作?
最佳答案
据我推测,您的 DLL 不在工作目录、PATH 变量目录或系统目录中。 Excel 不会在您的 DLL 所在的目录中查找,因此您需要将 DLL 移动到系统目录、PATH 变量目录之一或 excel 的工作目录中。
关于从 Excel 2010 中的 VBA 调用的 C++ DLL 仅适用于管理员模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16864840/