मैं एक ही कार्यपुस्तिका में स्थित सूची से निकाले गए अद्वितीय मानों से भरे जाने के लिए उपयोगकर्ता प्रपत्र में ड्रॉपडाउन सूची रखने का प्रयास कर रहा हूं। मैं अद्वितीय मूल्यों की इस सूची को मुद्रित करने से बचना चाहता हूं। मेरे यहां दो मुद्दे हैं:

  1. मैं यह "अद्वितीय मान सूची" बनाने का प्रबंधन नहीं करता
  2. मुझे नहीं पता कि पहले से जेनरेट की गई अद्वितीय मूल्य सूची का उपयोग करने के लिए मेरी ड्रॉपडाउन सूची कैसे बनाएं।

यहां मेरा असफल प्रयास है (मैं चाहता हूं कि एच कॉलम में मूल्यों से अद्वितीय मूल्यों का संग्रह किया जाए):

Private Sub OSizeBox_Click()
Dim arr() As New Collection, a
Dim rng() As Range

Dim LRow As Long

LRow = Cells(Rows.Count, 2).End(xlUp).Row


rng() = Range("H3", "H" & LRow)

For Each a In rng
    arr.Add Str(a), Str(a)
Next


OSizeBox.RowSource = arr()

End sub

इस कोड को चलाने के दौरान, मुझे निम्न त्रुटि मिलती है: "संकलन त्रुटि: अमान्य क्वालीफायर", मेरे फॉर/नेक्स्ट लूप में arr को हाइलाइट करता है।

किसी भी मदद या सलाह की बहुत सराहना की जाएगी! पहले ही, आपका बहुत धन्यवाद।

0
Hugo 9 जुलाई 2021, 13:54

1 उत्तर

ठीक है, मैं इसे आज़मा दूंगा।

Sub OSizeBox_Click()
    Dim arr As New Collection, a
    Dim rng As Range
    Dim LRow As Long

    LRow = Worksheets("Sheet_Name").Cells(Rows.Count, "H").End(xlUp).Row

    Set rng = Worksheets("Sheet_Name").Range("H3:H" & LRow)

    For Each a In rng
        ' Debug.Print a
        arr.Add a
    Next

End Sub

इसे संकलित करना चाहिए, उम्मीद है कि यह आपको अपना परिणाम देगा। बस कुछ नोट्स। एक श्रेणी वस्तु, और एक संग्रह वस्तु, को सरणियों के रूप में परिभाषित करने की आवश्यकता नहीं है, आपको यह निर्दिष्ट करने की आवश्यकता है कि LRow किस कॉलम से आता है, आपकी सीमा से मैंने 'H' मान लिया है, और वस्तुओं को सेट किया जाना चाहिए। सुनिश्चित करें कि, "शीट_नाम", उस शीट का नाम है जिस पर आपका ड्रॉपडाउन डेटा है।

आशा है कि यह आपको एक शुरुआत देगा।

संपादित करें: मुझे यह भी कहना चाहिए था कि मैं Microsoft 365, नवीनतम संस्करण और अपडेट से एक्सेल का उपयोग कर रहा हूं।

सादर, njc

1
njc 9 जुलाई 2021, 11:42