Сбой 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.