/ मैक्रो के अंदर / अचयनित बटन - vba, एक्सेल-vba, एक्सेल

मैक्रो के अंदर अचयनित बटन - vba, excel-vba, excel

मैंने एक एक्सेल मैक्रो बनाया है जो एक लेता हैबुरी तरह से स्वरूपित तालिका और अधिकांश भाग के लिए सभी डेटा को सही स्थान पर रखता है। इसलिए डेटा को मैन्युअल रूप से रीटाइप करने के बजाय जो 8+ घंटे लेता है, यह जांचने और सुनिश्चित करने में केवल 30 मिनट लगते हैं कि सब कुछ सही है।

अपने मैक्रो के अंत में मैंने एक बनाया हैबटन जो अंतिम स्वरूपण के लिए अनुमति देता है जो कि कार्यपुस्तिका को अल्पविराम वाली फ़ाइल बनने के लिए सेट करेगा ताकि इसे एक डेटाबेस में आयात किया जा सके।

"The 4 arguments determine where the cells top left corner is and its width,height
Set btn = ActiveSheet.Buttons.Add( _
ActiveSheet.Columns(7).Left, _
ActiveSheet.Rows(2).Top, _
ActiveSheet.Columns(1).Width * 2, _
ActiveSheet.Rows(1).Height * 2).Select

"creates all the settings for the button
Selection.Name = "btnFormat"
Selection.OnAction = "Final_Formatting"
ActiveSheet.Shapes("New Button").Select
Selection.Characters.Text = "Complete Formatting"

समस्या यह है, कि बहुत अंत में बटनअभी भी चयनित है, और मुझे इसे अचयनित करना पसंद है। मैंने "कहीं और खोजा है और ज्यादातर लोग कहते हैं कि बस कुछ और चुनना है, लेकिन मैं बस बटन को खोलना चाहता हूं, और कुछ नहीं। क्या यह संभव है?

इसके अलावा, अगर किसी के पास 4 तर्कों को साफ करने के बारे में सुझाव हैं तो कृपया टिप्पणी करने के लिए स्वतंत्र महसूस करें मुझे वह हिस्सा इंटरनेट से मिल गया और मैंने इसे अपने उद्देश्यों के लिए अनुकूलित किया लेकिन यह हास्यास्पद लग रहा है।

अग्रिम में धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

यदि आप "अपने बटन का चयन नहीं करना चाहते हैं तो बस उसे चुनें" जैसा कि आप वर्तमान में करते हैं। मैं नीचे दिए गए कोड में कुछ सुधार प्रस्तावित करता हूं:

Sub TEST()
Dim btn As Button
Set btn = ActiveSheet.Buttons.Add( _
ActiveSheet.Columns(7).Left, _
ActiveSheet.Rows(2).Top, _
ActiveSheet.Columns(1).Width * 2, _
ActiveSheet.Rows(1).Height * 2)
"there is no selection method above!

"creates all the settings for the button
With btn
.Name = "btnFormat"
.OnAction = "Final_Formatting"
"ActiveSheet.Shapes("btnFormat").Select- this line is not needed
.Characters.Text = "Complete Formatting"
End With

End Sub

परिणामस्वरूप सेल रेंज को कोड रन के बाद चुना जाएगा।


जवाब के लिए 0 № 2

जहाँ तक हमेशा एक चयनित होना हैतत्व, मुझे लगता है कि "अचयनित" विकल्प मौजूद नहीं हो सकता है (क्योंकि ऐसे मामले भड़क सकते हैं जहां कोई तत्व चयनित नहीं है)। सामान्य कार्यवाही केवल अन्य चीज़ का चयन कर रही है। इस मामले में, मुझे लगता है कि किसी भी सेल का चयन करना आपके लिए काम करेगा:

Range("A1").Select

बटन के निर्माण के बारे में, सबसे पहले, यह कोड गलत है (और वास्तव में मेरे कंप्यूटर पर एक त्रुटि उत्पन्न कर रहा है)। यदि आप उपयोग करना चाहते हैं Select आपको हटाना होगा Set btn = अंश। इसके अलावा, आपको इन तर्कों को पारित करना होगा, लेकिन जहाँ तक यह निहित है, एक्टिवसेटशीट को हटा सकते हैं (यह कार्यपत्रकों के वास्तविक नामों पर भरोसा करने के लिए अनुशंसित है, लेकिन अगर स्थिति "नियंत्रण में है" तो आप ActiveSheet पर भरोसा कर सकते हैं) )।

Set btn = ActiveSheet.Buttons.Add(Columns(7).Left, Rows(2).Top, Columns(1).Width * 2, Rows(1).Height * 2)

ActiveSheet.Buttons.Add(Columns(7).Left, Rows(2).Top, Columns(1).Width * 2, Rows(1).Height * 2).Select