我在 Excel-VBA 中编写了一个小实用程序,它还可以在几个单独的 .pdf 文件中与 Acrobat Javascript 交互。
该代码已经过广泛测试,并且在我的台式 PC 上完全按照预期运行。但是,我最终需要在 Microsoft Surface 平台上实现此代码。当我尝试在 Microsoft Surface 上的 Excel 文件中运行相同的代码时,代码会在任何使用“GetJSObject”的行处停止。
例如。以下在我的 PC 上运行良好,但在我的 Surface 上导致“对象或方法不受支持”错误。
Set gAPP = CreateObject("AcroExch.App")
Set gPDDOC = CreateObject("AcroExch.PDDoc")
If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject
到目前为止,我已经能够在网上找到一些提示 GetJSObject 在 64 位环境中无法正常工作,而我的 Surface 运行 64 位 Windows 10 和 32 位 Excel。
但是,我认为仅此一项并不能解释两台机器的行为差异。我的桌面运行 64 位 Windows 7 和 32 位 Excel,一切正常。
我应该在哪里寻找帮助发现问题的根源(和解决方案)?
编辑/更新: getJSObject 语句实际上按预期工作,如果我在运行我的 VBA 代码之前采取额外步骤在 Acrobat 中手动打开相关 .pdf 文件之一的副本。我认为这意味着它在某种程度上是对象定义(例如Set gAPP = CreateObject("AcroExch.App")
)相对于我的 PC 在 Surface 上的工作方式不同——而不是像最初想象的那样特别是 getJSObject 命令?
到目前为止,对我来说如何/为什么这可能是真的(更不用说我如何解决这个问题了)对我来说没有多大意义。