Сбой GetJSObject при запуске на Microsoft Surface (Excel-VBA)

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

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

Например. Следующее работает нормально на моем ПК, но вызывает ошибку "объект или метод не поддерживается" на моем 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 фактически работает как задумано, ЕСЛИ я предпринимаю дополнительный шаг, чтобы вручную открыть копию одного из соответствующих файлов.pdf в Acrobat перед запуском моего кода VBA. Я предполагаю, что это означает, что это как-то определения объектов (например, Set gAPP = CreateObject("AcroExch.App")) которые по-разному работают на Surface относительно моего ПК - а не команда getJSObject специально, как первоначально предполагалось?

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

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 доступен в Adobe Acrobat, а не в Adobe Reader.

Другие вопросы по тегам