6

我在 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 命令?

到目前为止,对我来说如何/为什么这可能是真的(更不用说我如何解决这个问题了)对我来说没有多大意义。

4

1 回答 1

1

不确定这是否已经得到解答,但是我将采取两种行动进行研究:

1.

看看你是否可以使用以下方法在没有构造函数的情况下启动它:

Set AcroApp = New AcroApp

而不是

Set AcroApp = CreateObject("AcroExch.App")

2.

确保您使用的是相同版本的 acrobat,根据我的研究,此错误发生在 Google 搜索查询的第一个结果中:

createobject acroexch.app error 429
You cannot do this with Adobe Reader, you need Adobe Acrobat.

此 OLE 界面可用于 Adob​​e Acrobat,而不是 Adob​​e Reader。

于 2016-04-01T04:19:27.273 回答