वीबीए सॉर्ट ऐरे

यह ट्यूटोरियल प्रदर्शित करेगा कि VBA में किसी सरणी में मानों को कैसे क्रमबद्ध किया जाए

लूप का उपयोग करके एक-आयामी सरणी को सॉर्ट करना

एक सरणी को सॉर्ट करने के लिए लूप, चर और अस्थायी सरणियों का उपयोग करके डेटा हेरफेर की थोड़ी आवश्यकता होती है।

  • आपको सबसे पहले अपने मूल्यों के साथ सरणी को पॉप्युलेट करना होगा
  • फिर आपको सरणी के माध्यम से दो बार लूप करना होगा! एक बार वर्तमान तत्व सरणी से मान प्राप्त करने के लिए, और उस लूप में अभी भी, सरणी में अगले तत्व का मान प्राप्त करने के लिए।
  • फिर आपको तत्वों की तुलना करने की आवश्यकता है - और दूसरे को पहले वाले की स्थिति में ले जाएं यदि दूसरा वर्णानुक्रम में 1 से पहले है।

नीचे दिया गया उदाहरण इस प्रक्रिया को प्रदर्शित करता है।

1234567891011121314151617181920212223 उप SortAnArray ()डिम आई ऐज़ लॉन्ग'सरणी सेट करें'मंद strName () प्रकार के रूप मेंडिम टेम्प वैरिएंट के रूप में'सरणी को पॉप्युलेट करें'strName () = ऐरे ("बॉब स्मिथ", "जॉन डेविस", "फ्रेड जोन्स", "स्टीव जेनकिंस", "बॉब विलियम्स")'ऐरी के बाउंड के माध्यम से लूप और पहला नाम प्राप्त करें'i = LBound(strName) के लिए UBound(strName) के लिए - 1'फिर से लूप करें, और जांचें कि अगला नाम मूल के पहले या बाद में वर्णानुक्रम में है या नहींj = i + 1 के लिए UBound(strName) के लिएअगर UCase(strName(i)) > UCase(strName(j)) तो'यदि नाम को पिछले नाम से पहले स्थानांतरित करने की आवश्यकता है, तो एक अस्थायी सरणी में जोड़ें'अस्थायी = strName (जे)'नाम बदलें'strName(j) = strName(i)strName(i) = Tempअगर अंतअगला जेअगला मैं'एक संदेश बॉक्स के माध्यम से ऐरे को आउटपुट करें'MsgBox शामिल हों (strName (), vbCrLf)अंत उप

यदि आप इस प्रक्रिया को चलाते हैं, तो आपको निम्न संदेश बॉक्स प्राप्त होगा।

आप ऐरे को दूसरी दिशा में भी सॉर्ट कर सकते हैं - जैसे: कोड की इस लाइन को बदलकर Z से A तक

1 अगर UCase(strName(i)) > UCase(strName(j)) तो

कोड की इस पंक्ति के लिए

1 अगर UCase(strName(i)) < UCase(strName(j)) तो

फिर आपको निम्न संदेश बॉक्स मिलेगा।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave