2016-02-17 5 views
6

वर्तमान में एक्सेल 2007 के साथ वीबीए का उपयोग ...फ़ंक्शन के माध्यम से कोई बटन अक्षम करें?

मैं वर्तमान में कार्यों की क्षमताओं का परीक्षण कर रहा हूं और बटन का उपयोग करके थोड़ा फंस गया हूं। मेरे पास दो बटन हैं, जिन्हें एक और दो नाम दिया गया है। या तो दूसरों के नाम के चर को पार करने वाले प्रत्येक बटन के साथ एक समारोह कैल्क को दबाकर दबाएं। इस प्रकार है:

Private Sub ONE_Click() 
Calc TWO 
End Sub 

Private Sub TWO_Click() 
Calc ONE 
End Sub 

Function Calc(B As CommandButton) 
B.Enabled = False 
End Function 

मेरे समझ है कि बटन दबाने एक गुजरता समारोह कैल्क चर दो है, और फिर बटन दो अक्षम करता है। अगर मैं बटन एक, बटन दो स्लेटी बाहर दबाएँ और "अक्षम" दिखाई देता है,

Private Sub Reset_Click() 
ONE.Enabled = True 
TWO.Enabled = True 
End Sub 

इस के परिणाम:

मैं भी लेबल लगा एक बटन रीसेट जो इस प्रकार कार्य करता है। हालांकि जब मैं रीसेट बटन दबाता हूं, तो यह ग्रे रहता है। बटन के गुणों की जांच से पता चलता है कि यह वास्तव में अक्षम नहीं होता है। मैंने एक और बटन स्थापित किया जो सीधे बटन दो को अक्षम करता है, यानी TWO.Enabled = गलत, ऐसा करने के लिए एक चर का उपयोग करने के बजाय।

जब बटन सीधे बटन का उपयोग करके सीधे अक्षम किया जाता है, तो रीसेट करने से बटन को सक्षम करना चाहिए, और गुण दर्शाते हैं कि बटन अक्षम है।

क्या किसी को पता होगा कि इस तरह के बटन को अक्षम करने के लिए एक वैरिएबल का उपयोग क्यों करना एक भ्रमपूर्ण अक्षमता में है? और बेहतर अभी तक, इस मुद्दे को कैसे दूर किया जाए?

+0

मैं आपका कोड चलाता हूं और कोई अवांछित व्यवहार नहीं पाया। प्रेस बटन "रीसेट" में हमेशा अन्य बटन सक्षम होंगे – user3598756

+0

मैं कोड भी चलाता हूं और एक्सेल 2007 और एक्सेल 2016 दोनों के साथ फ्रैंक ज़ेड के समान व्यवहार करता हूं। –

उत्तर

1

यदि आपको एक अनिश्चित संदर्भ के माध्यम से कॉल करने में परेशानी है, तो एक स्थिर पैरामीटर का उपयोग करें।

Private Sub ONE_Click() 
    Calc "TWO" 
End Sub 

Private Sub TWO_Click() 
    Calc "ONE" 
End Sub 

अब आप ऑब्जेक्ट पर कार्य करने के लिए उस पैरामीटर का उपयोग कर सकते हैं।

Function Calc(B As String) 
If B = "ONE" Then 
    ONE.Enabled = False 
ElseIf B = "TWO" Then 
    TWO.Enabled = False 
Else 
    Exit Function 
End If 
End Function 
संबंधित मुद्दे