2010-09-29 15 views
6

मैंने उपयोगकर्ताफॉर्म टूलबार से कॉम्बो बॉक्स को अपनी शीट पर खींचकर एक ड्रॉपडाउन बनाया। मैंने पुस्तक में कुछ कोशिकाओं से कुछ मूल्यों को सौंपा। अब मैं कुछ वीबीए कोड को स्ट्रिंग के रूप में चयनित ड्रॉपडाउन आइटम के मान तक पहुंचने के लिए चाहता हूं।वीबीए में ड्रॉपडाउन मूल्य प्राप्त करें और ड्रॉपडाउन का नाम प्राप्त करें ... कहीं भी नहीं मिला?

मेरी ड्रॉपडाउन में केवल टेक्स्ट है।

मैं इस नव निर्मित ड्रॉपडाउन का नाम कैसे ढूंढूं (यह गुणों में कहीं भी नहीं है!)?

उत्तर

4
Dim dd As DropDown 
Set dd = ActiveSheet.DropDowns("Drop Down 6") 
Set r = Sheet2.Range(dd.ListFillRange) 

Set ddValue = r(dd.Value) 

नोट:

  • ड्रॉपडाउन एक दृश्यमान वर्ग नहीं है। आप बस इसका उपयोग करें और यह काम करता है।

  • लटकती नियंत्रण (UserForm नहीं) के नाम जानने के लिए सिर्फ
    बस स्तंभ ए ऊपर अपनी स्क्रीन के ऊपरी बाएँ कोने में नाम बॉक्स को देखो यह नियंत्रण जब के नाम का कहना है आप अपने नियंत्रण पर राइट क्लिक करें.-

  • शीट 2 वह जगह है जहां ड्रॉपडाउन सूची आबादी है। तो जहां भी आपकी सूची डेटा है।

    आशा है कि आप सभी की मदद करें।

0

यह बात करने का एक भद्दा तरीका है, लेकिन यह काम करना चाहिए:

Dim o As Object 

For Each o In Worksheets("Sheet1").Shapes 
    MsgBox o.Name 
Next o 

भी Worksheet उद्देश्य यह है कि तुम पर पुनरावृति सकता है की एक छिपे हुए DropDowns संग्रह सदस्य नहीं है। यह Forms टूलबार से शामिल किए गए आइटम मिल जाएगा लेकिन Control Toolbox उपकरण पट्टी

3

यहाँ से शामिल किए गए आइटम नहीं मिलेगा कि कैसे आप नाम पता करने के लिए की जरूरत के बिना स्ट्रिंग प्राप्त होते हैं:

Dim DD As Shape 

Set DD = ActiveSheet.Shapes(Application.Caller) 

MsgBox DD.ControlFormat.List(DD.ControlFormat.ListIndex) 
+0

मुझे दूसरी पंक्ति पर एक प्रकार का मेल नहीं मिला। दोबारा मुझे नहीं पता कि यह कैसे काम करता है लेकिन मैं ड्रॉपडाउन नियंत्रण का उपयोग कर रहा हूं, उपयोगकर्ता का फॉर्म नहीं, शायद यह बदलता है कि हम आम तौर पर स्ट्रिंग तक कैसे पहुंचते हैं। – EKet

+0

मैंने प्रपत्र टूलबार पर कॉम्बोबॉक्स नियंत्रण पर क्लिक करके मेरा परीक्षण किया, फिर इसे जोड़ने के लिए शीट पर क्लिक किया। इसके बाद मैंने इस कोड के साथ शीट 1 पर DropDown1_Change सब बनाया। फिर मैं कम्बोबॉक्स पर वापस गया, राइट-क्लिक किया और असाइन मैक्रो चुना और मैंने जो मैक्रो बनाया था उसे चुना। फिर मैंने राइट-क्लिक किया और प्रारूप नियंत्रण चुना, और ए 1: ए 3 की इनपुट रेंज चुना। मैं फिर ए 1, ए 2 और ए 3 में कुछ मूल्य डालता हूं। फिर जब मैंने कॉम्बोबॉक्स पर क्लिक किया और उन मानों में से एक चुना, तो एक संदेश बॉक्स मूल्य के साथ दिखाई दिया। –

+0

लांस, कदम से विस्तृत कदम के लिए धन्यवाद। मैंने आपके निर्देशों को फिर से कोशिश की और मुझे अभी भी एक ही त्रुटि मिली। हालांकि मैंने पहले से ही कामकाजी उत्तर पोस्ट किया है जो अंतर्ज्ञानी और स्पष्ट है। यह तरीका मुझे देखने के लिए अनुमति देता है कि मैं क्या कह रहा हूं और उन वस्तुओं के प्रकार की पहचान कर रहा हूं जिन्हें मैं उपयोग कर रहा हूं (यानी ड्रॉपडाउन)। तो एक प्रोग्रामर के रूप में मैं सिर्फ जेनेरिक आकृति ऑब्जेक्ट्स और एप्लिकेशन कॉलर नहीं देख रहा हूं। मुझे एक विशिष्ट ड्रॉप डाउन या 2 ड्रॉप डाउन की बजाय अधिक सामान्य परिदृश्य के लिए आपकी विधि पसंद है जो कुछ डेटा फ़िल्टर करता है। फिर भी आपके प्रयास के लिए धन्यवाद! – EKet

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