यह ट्यूटोरियल आपको सिखाएगा कि वीबीए में एक कॉलम से अद्वितीय मानों के साथ एक सरणी को कैसे पॉप्युलेट किया जाए।
कॉलम से अद्वितीय मानों के साथ ऐरे को पॉप्युलेट करें
एक्सेल शीट से ऐरे में मानों की सूची लेना एक्सेल में पंक्तियों के माध्यम से लूपिंग और सरणी को पॉप्युलेट करने का मामला है।
एक्सेल शीट में ग्राहकों की निम्नलिखित सूची पर विचार करें।
लूप का उपयोग करके, हम वीबीए में एक ऐरे को पॉप्युलेट कर सकते हैं। हालांकि, प्रत्येक पंक्ति के माध्यम से एक मानक लूप लूप होगा, जिसमें डुप्लिकेट पंक्तियां शामिल हैं और आप अपने ऐरे में डुप्लिकेट मानों के साथ समाप्त हो जाएंगे।
कोशिकाओं के माध्यम से लूप करने का समाधान और संग्रह ऑब्जेक्ट को संग्रह ऑब्जेक्ट के रूप में मानों के साथ पॉप्युलेट करने से डुप्लिकेट की अनुमति नहीं होगी। फिर आप अपनी सरणी को पॉप्युलेट करने के लिए उस संग्रह ऑब्जेक्ट का उपयोग कर सकते हैं।
1234567891011121314151617181920212223242526 | उप PopulateUniqueArray ()मंद StrCustomers () स्ट्रिंग के रूप मेंनए संग्रह के रूप में डिम कर्नलस्ट्रिंग के रूप में डिम वैलसेलडिम आई अस इंटीजरडिम एन अस इंटीजर'श्रेणी में पंक्तियों की गणना करें'एन = रेंज ("ए 1", रेंज ("ए 1")। एंड (एक्सएलडाउन))। पंक्तियां। गणना'अस्थायी संग्रह आबाद करें'त्रुटि पर फिर से शुरू करें अगलामैं = 0 से n . के लिएवैलसेल = रेंज ("ए 1")। ऑफसेट (i, 0)। मानCol.ValCell, valCell जोड़ेंअगला मैंएरर.क्लियरत्रुटि गोटो 0 . पर'आकार बदलें nn = कर्नल काउंट'पुनः घोषित सरणीReDim StrCustomers(1 से n)'संग्रह के माध्यम से लूप करके ऐरे को पॉप्युलेट करें'i = 1 से कर्नल काउंट . के लिएStrCustomers(i) = Col(i)अगला मैंDebug.Print Join(StrCustomers(), vbCrLf)अंत उप |
सरणी w/अद्वितीय मानों को पॉप्युलेट करें - फ़ंक्शन
ऊपर दिए गए उदाहरण में एक ऐसी प्रक्रिया दिखाई गई है जो आपके वांछित कार्यों को करेगी। लेकिन इसके बजाय आप कार्य करने के लिए पोर्टेबल फ़ंक्शन पसंद कर सकते हैं:
123456789101112131415161718192021222324 | फ़ंक्शन CreateUniqueList(nStart as long, nEnd as long) वेरिएंट के रूप मेंनए संग्रह के रूप में डिम कर्नलधुंधला गिरफ्तारी अस्थायी() जैसा डोरीस्ट्रिंग के रूप में डिम वैलसेलडिम आई अस इंटीजर'अस्थायी संग्रह आबाद करें'त्रुटि पर फिर से शुरू करें अगलाi = 0 से nEnd . के लिएवैलसेल = रेंज ("ए" और एनस्टार्ट)। ऑफसेट (i, 0)। मानCol.ValCell, valCell जोड़ेंअगला मैंएरर.क्लियरत्रुटि गोटो 0 . पर'आकार बदलें nnEnd = कर्नल काउंट'पुनः घोषित सरणीरेडिम गिरफ्तारी अस्थायी(1 से अंत तक)'संग्रह के माध्यम से लूप करके अस्थायी सरणी को पॉप्युलेट करें'i = 1 से कर्नल काउंट . के लिएगिरफ्तारी अस्थायी(i) = कर्नल (i)अगला मैं'फ़ंक्शन परिणाम में अस्थायी सरणी लौटाएं'CreateUniqueList = गिरफ्तारी अस्थायी()अंत समारोह |
फ़ंक्शन का उपयोग करने के लिए, आपको इसे उप प्रक्रिया से कॉल करना होगा:
123456789 | उप पॉप्युलेटअरे ()मंद StrCustomers () स्ट्रिंग के रूप मेंसंग्रह के रूप में मंद strColडिम एन अस लॉन्ग'श्रेणी में पंक्तियों की गणना करें'एन = रेंज ("ए 1", रेंज ("ए 1")। एंड (एक्सएलडाउन))। पंक्तियां। गणना'अद्वितीय मानों की एक सरणी बनाने के लिए फ़ंक्शन चलाएँ'strCustomers() = CreateUniqueList(1,n)अंत उप |