2016-03-21 14 views
6

मैंने Excel-VBA में एक छोटी उपयोगिता लिखी है जो अलग-अलग .pdf फ़ाइलों में एक्रोबैट जावास्क्रिप्ट के साथ भी इंटरैक्ट करता है।माइक्रोसॉफ्ट सर्फेस (एक्सेल-वीबीए) पर चलने पर GetJSObject विफल रहता है

कोड का व्यापक परीक्षण किया गया है और मेरे डेस्कटॉप पीसी पर बिल्कुल वैसे ही चलता है। हालांकि, मुझे अंततः माइक्रोसॉफ्ट सर्फेस प्लेटफ़ॉर्म पर इस कोड को लागू करने की आवश्यकता है। जब मैं एक Microsoft फ़ाइल पर एक एक्सेल फ़ाइल से एक ही कोड चलाने की कोशिश करता हूं, तो कोड "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 बिट एक्सेल।

हालांकि, मुझे नहीं लगता कि यह अकेले दोनों मशीनों में व्यवहार में अंतर के लिए जिम्मेदार हो सकता है; मेरा डेस्कटॉप 32 बिट एक्सेल के साथ 64-बिट विंडोज 7 चला रहा है, और सब कुछ इरादे के रूप में काम करता है।

मुझे समस्या का स्रोत (और समाधान) खोजने में मदद करने के लिए कहां देखना चाहिए?

संपादित करें/अपडेट: getJSObject बयान वास्तव में के रूप में इरादा, अगर मैं हस्तचालित रूप से अपने VBA कोड चलाने से पहले एक्रोबेट में प्रासंगिक .pdf फ़ाइलों में से एक की एक प्रति खोलने के अतिरिक्त कदम उठाने काम करता है। मुझे लगता है कि इसका मतलब है कि यह किसी भी तरह ऑब्जेक्ट परिभाषाओं (उदा। Set gAPP = CreateObject("AcroExch.App")) है जो मेरे पीसी के सापेक्ष सतह पर अलग-अलग काम कर रहे हैं - और मूल रूप से getJSObject कमांड नहीं, जैसा कि मूल रूप से सोचा गया था?

अब तक, यह मेरे लिए बहुत समझ में नहीं आया है कि यह कैसे सच हो सकता है (अकेले छोड़ें कि मैं इस मुद्दे को हल करने के लिए कैसे जा सकता हूं)।

+1

बस एक सुझाव ... इसे आज़माएं ... लाइन को बदलें 'अगर 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.

सुनिश्चित करें कि आप कलाबाज के समान संस्करण का उपयोग कर रहे है, मेरे शोध से इस त्रुटि को खोज क्वेरी के लिए गूगल में बहुत पहले परिणाम से होती है:

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

यह OLE इंटरफेस, एडोब एक्रोबेट के साथ उपलब्ध है नहीं एडोब रीडर।

संबंधित मुद्दे