2016-03-21 2 views
6

Я написал небольшую утилиту в Excel-VBA, которая также взаимодействует с Acrobat Javascript в нескольких отдельных файлах .pdf.GetJSObject не работает при работе на Microsoft Surface (Excel-VBA)

Код был протестирован широко и работает точно так же, как на моем настольном ПК. Однако в конечном итоге мне необходимо реализовать этот код на платформе Microsoft Surface. Когда я пытаюсь запустить тот же код из файла Excel на Microsoft Surface, код не работает в каких-либо строках, используя «GetJSObject».

Например. На моем ПК работает отлично, но на моей поверхности возникает ошибка «объект или метод не поддерживается».

Set gAPP = CreateObject("AcroExch.App") 

Set gPDDOC = CreateObject("AcroExch.PDDoc") 

If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject 

До сих пор я был в состоянии найти некоторые намеки в Интернете, что GetJSObject оленьей кожи хорошо работать в 64 битной среде и мой поверхности работает 64 бит для Windows 10 и 32 бита Excel.

Однако я не думаю, что это само по себе может объяснить разницу в поведении на обеих машинах; мой рабочий стол работает под 64-разрядной Windows 7 с 32-разрядным Excel, и все работает по назначению.

Где я должен искать, чтобы найти источник (и решение) проблемы?

EDIT/UPDATE: Оператор getJSObject на самом деле работает, как задумано, IF Я беру еще один шаг вручную открыть копию одного из соответствующих файлов .pdf в Acrobat перед запуском моего VBA код. Я предполагаю, что это означает, что это как-то определения объектов (например, Set gAPP = CreateObject("AcroExch.App")), которые по-разному работают на поверхности по сравнению с моим ПК, а не как команда getJSObject, как это первоначально считалось?

До сих пор он не имел большого смысла для меня, как/почему это может быть правдой (не говоря уже о том, как я мог бы решить проблему).

+1

Просто предложение ... Попробуйте это ... измените строку 'if gPDDoc.Open (pdfFileName) Затем установите jso = gPDDOC.GetJSObject' в' gPDDoc.Open pdfFileName: DoEvents: установите jso = gPDDOC.GetJSObject' –

ответ

1

Не уверен, что если бы это был дан ответ еще, однако есть два варианта действий я бы принять для исследования:

1.

Смотрите, если вы можете запустить его без конструктора с помощью:

Set AcroApp = New AcroApp 

Вместо

Set AcroApp = CreateObject("AcroExch.App") 

2.

Убедитесь, что вы используете ту же версию акробата, из моего исследования эта ошибка возникает из самого первого результата в Google по поисковому запросу:

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

Этот интерфейс OLE доступен с Adobe Acrobat, а не Adobe Читатель.

Смежные вопросы