2013-03-14 47 views
11

मैं एक मैक्रो है कि मैं एक टैब/समूह/बटन कस्टम यूआई संपादक द्वारा जोड़ा के माध्यम से कॉल -VBA त्रुटि 'तर्क या अमान्य संपत्ति कार्य की गलत संख्या' जब कस्टम बटन के माध्यम से मैक्रो चल

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
    <ribbon startFromScratch="false"> 
     <tabs> 
      <tab id="tabCustomActions" label="Custom ActionsXXX" insertAfterMso="TabDeveloper"> 
       <group id="GroupTLA" label="TLA Actions"> 
        <button id="buttonFormatTLA" label="Format as TLA" image="TLALogo" size="large" onAction="start_tla" /> 
       </group> 
      </tab> 
     </tabs> 
    </ribbon> 
</customUI> 

बटन ठीक दिखाई देता है, अपने कस्टम लोगो के साथ है, लेकिन जब कभी मैं बटन पर क्लिक करें मैं पालन त्रुटि मिलती है -

VBA Error

VBA इस त्रुटि निम्नलिखित खोला नहीं है, के रूप में यह आमतौर पर है, और कोई कोड के भीतर अगर मैं डेव खोलता हूं तो वीबीए को समस्या के रूप में इंगित किया जाता है लूपर कंसोल और फिर बटन को आज़माएं और क्लिक करें।

आश्चर्यजनक रूप से, अगर मैं मैन्युअल रूप से मैक्रो को चलाने और चलाने की कोशिश करता हूं, तो यह कोई त्रुटि के बिना ठीक काम करता है। क्या किसी के पास कोई विचार है कि इसे कैसे हल किया जाए?

Pastebin में मेरा पूरा कोड यहां है, क्या आप इसे देखना चाहते हैं। धन्यवाद।

+0

वीबीए आईडीई नहीं खुलता है क्योंकि आप वीबीए नहीं चला रहे हैं, यह एक मैक्रो है, है ना? जब आप इसे मैन्युअल रूप से चलाते हैं तो वीबीए में कौन सा कोड चल रहा है? – Brad

+2

ब्रैड: एक्सेल और अन्य कार्यालय उत्पादों में, वीबीए = मैक्रो। वही चीज। –

उत्तर

12

आपके पास वीबीए कोड में start_tla कॉलबैक के लिए गलत कॉल हस्ताक्षर है।

यदि आप कस्टम यूआई में अपनी फ़ाइल को खोलने के संपादक, वहाँ एक बटन कॉलबैक मेनू में सही करने के लिए उत्पन्न कहा जाता है। आप इसे दबाते हैं, तो यह आप अपने VBA कोड आपकी फ़ाइल में रिबन एक्सएमएल से मिलान करने के लिए सही कॉलबैक दे देंगे:

'Callback for buttonFormatTLA onAction 
Sub start_tla(control As IRibbonControl) 
    'Your code goes here 
End Sub 

Pastebin लिंक के अनुसार, अपने उप ऐसा दिखाई देता है control As IRibbonControl पैरामीटर के बिना:

Public Sub start_tla() 
+0

बिल्कुल सही, इसके लिए धन्यवाद। मैंने वास्तव में एक सामान्य 'on_customUI_action' कॉलबैक फ़ंक्शन बनाया और फिर जांच की कि कौन सा बटन दबाया गया था। इस तरह मैक्रो काम करता है अगर मैं इसे मैन्युअल रूप से चलाता हूं। धन्यवाद। –

+1

मेरे मामले में, मेरे पास एक ही 'मॉड-इन' में एक ही मॉड्यूल नाम था जो खुला था। मॉड्यूल में अद्वितीय नाम देने के बाद यह त्रुटि चली गई है। – Dhay

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