2016-03-21 11 views
6

Ho scritto una piccola utility in Excel-VBA che interagisce anche con Acrobat Javascript in una manciata di file .pdf separati.GetJSObject non riesce quando viene eseguito su Microsoft Surface (Excel-VBA)

Il codice è stato testato estesamente e funziona esattamente come previsto sul mio PC desktop. Tuttavia, alla fine ho bisogno di implementare questo codice su una piattaforma Microsoft Surface. Quando provo a eseguire lo stesso codice da un file Excel su un Microsoft Surface, il codice si blocca su qualsiasi riga che utilizza "GetJSObject".

Es. Quanto segue funziona bene sul mio PC, ma causa un errore "oggetto o metodo non supportato" sul mio Surface.

Set gAPP = CreateObject("AcroExch.App") 

Set gPDDOC = CreateObject("AcroExch.PDDoc") 

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

Finora, sono stato in grado di trovare alcuni suggerimenti on-line che GetJSObject doesnt lavoro bene in un ambiente a 64 bit e la mia superficie corre a 64 bit di Windows 10 e 32 bit di Excel.

Tuttavia, non penso che questo da solo possa spiegare la differenza di comportamento su entrambe le macchine; il mio desktop esegue Windows 7 a 64 bit con Excel a 32 bit e tutto funziona come previsto.

Dove dovrei cercare di aiutare a scoprire la fonte (e la soluzione) del problema?

EDIT/UPDATE: L'istruzione getJSObject effettivamente funziona come previsto, SE prendo il passo ulteriore di aprire manualmente una copia di uno dei file .pdf rilevanti in Acrobat prima di eseguire il mio codice VBA. Presumo questo significa che in qualche modo sono le definizioni dell'oggetto (ad esempio Set gAPP = CreateObject("AcroExch.App")) che funzionano in modo diverso su Surface rispetto al mio PC - e non il comando getJSObject in modo specifico, come inizialmente pensato?

Finora, non ha molto senso per me come/perché questo potrebbe essere vero (per non parlare di come potrei risolvere il problema).

+1

Solo un suggerimento ... Provare questo ... cambia la linea 'Se gPDDoc.Open (pdfFileName) Quindi impostare JSO = gPDDOC.GetJSObject' a' gPDDoc.Open pdfFileName: DoEvents: Set JSO = gPDDOC.GetJSObject' –

risposta

1

Non sono sicuro se questo fosse ancora ricevuto alcuna risposta, tuttavia ci sono due linee d'azione mi piacerebbe prendere per la ricerca:

1.

Vedere se è possibile avviare senza il costruttore utilizzando:

Set AcroApp = New AcroApp 

Piuttosto che

Set AcroApp = CreateObject("AcroExch.App") 

2.

Assicurarsi che si sta utilizzando la stessa versione di Acrobat, dalla mia ricerca questo errore si verifica fin dal primo risultato su Google per la query di ricerca:

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

Questa interfaccia OLE è disponibile con Adobe Acrobat, non Adobe Lettore.

Problemi correlati