के साथ स्वचालन त्रुटि Excel कार्यपुस्तिका लोड करने का प्रयास करते समय मुझे अजीब व्यवहार मिलता है।सशर्त संकलन
मेरे पास एक इंटर-एडइन है, जिसे COM इंटरऑप के साथ .NET में लिखा गया है। इसका मुख्य रूप से मेरा खुद का रिबन-टैब बनाने, मेनू से कार्यपुस्तिका लोड करने और कुछ प्रोजेक्ट प्रशासन करने के लिए उपयोग किया जाता है।
जब मैं किसी कार्यपुस्तिका के दो तरीके का उपयोग कर खोलने का प्रयास करें, मैं अलग परिणाम प्राप्त:
सबसे पहले, जब मैं भीतर ऐड सब कुछ ठीक काम करता है से वर्कबुक (Excel 2003-संस्करण) लोड। रिबन के बटन-इवेंट से, ऐड-इन के सार्वजनिक फ़ंक्शन openWorkbook
को एक्सेल वर्कबुक लोड करने के लिए application.workbooks.open(...)
का उपयोग किया जाता है।
इस तरह, कार्यपुस्तिका बिना किसी त्रुटि के खुलती है।
दूसरा, जब मैं की तरह कोड का उपयोग कर VBA के भीतर से ऐड-फ़ंक्शन कॉल करने के लिए प्रयास करें:
संकलन त्रुटि
स्वचालन त्रुटि
:Set addIn = Application.COMAddIns("WMExcelAddin1") Set automationObject = addIn.Object automationObject.openWorkbook (filename)
मैं एक त्रुटि संदेश मिलता
और आईडीई पहली घटना में बंद हो जाता है कार्यपुस्तिका-मॉड्यूल में से एक में सशर्त संकलन, की तरह लग रही इस प्रकार है:
#const ebind = 0
[...]
sub proc1()
#if ebind = 1 then ' IDE Stops here
[...]
#else
[...]
#end if
end sub
मैं एक ही प्रभाव के साथ संख्या के बजाय बूलियन डेटाप्रकार का उपयोग करने की कोशिश की।
मैं अपने wits 'अंत में हूँ।
आपने वीबीए को अपनी कक्षाओं और विधियों का खुलासा कैसे किया? [इस तरह कुछ?] (http://davecra.com/2013/02/01/how-to-expose-methods-in-your-vsto-add-in/) –
[vba4all] (http: // stackoverflow .com/उपयोगकर्ता/2140173/vba4all), हाँ - बिल्कुल आपके लिंक में वर्णित है। (VB.NET \t में हालांकि सी # में नहीं)। – DrMarbuse
क्या आपने vba प्रोजेक्ट में अपने एडिन का संदर्भ सेट किया है? – ZAT