Я написал небольшую утилиту в 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, как это первоначально считалось?
До сих пор он не имел большого смысла для меня, как/почему это может быть правдой (не говоря уже о том, как я мог бы решить проблему).
Просто предложение ... Попробуйте это ... измените строку 'if gPDDoc.Open (pdfFileName) Затем установите jso = gPDDOC.GetJSObject' в' gPDDoc.Open pdfFileName: DoEvents: установите jso = gPDDOC.GetJSObject' –