将dll函数加载到excel 365 vba中的问题

时间:2019-03-14 21:13:54

标签: excel vba office365

我有一个VBA代码,可以在Office 2003到2016版本之间正常运行。

最近该公司移至Office 365,并且相同的代码无法从dll加载功能。

其中一个功能为例:

Public Declare PtrSafe Function hllapi_init Lib "C:\Windows\SysWOW64\libhllapi.dll" (ByVal tp As String) As Long

但是,当调用函数时,即使声明中引用了完整路径,vba / excel也会显示运行时错误48'找不到文件'

但是,显然,该文件存在,因为在早期版本的Office中可以完全准确地运行相同的代码。

365版本是什么? 搜索有关声明函数和或api的文档,但未发现特定于365版本的任何内容。

此外,#if语句(通常用于通过与ptrsafe命令配对(或不配对)的Windows和Office的32位和64位来适应dll函数和api调用)在此似乎完全被忽略了。 365版本。

如果在模块顶部的#if条件内声明了与上述示例相同的声明,则vba不会识别返回“ vba编译错误子或未定义函数”的函数。

编辑: 只是添加可能相关的信息(我不知道):运行 Windows 10 64位, Office 365 32位, DLL位于SYSWOW64文件夹中...

0 个答案:

没有答案