यह ट्यूटोरियल वीबीए में 2-डी और बहु-आयामी सरणियों पर चर्चा करेगा।
बहु-आयामी सरणी (2D सरणियाँ)
बहु-आयामी सरणियाँ वे सरणियाँ होती हैं जिनमें एक से अधिक आयाम होते हैं, आमतौर पर दो या तीन आयाम, लेकिन सरणियों में 32 आयाम तक हो सकते हैं।
एक 2D सरणी घोषित करें
एक से अधिक आयाम वाली सरणी बनाने के लिए, प्रत्येक अलग आयाम को परिभाषित करने के लिए अल्पविराम का उपयोग करें:
1 | मंद intArr(2,3) पूर्णांक के रूप में |
एक 2D ऐरे को पॉप्युलेट करना
नीचे दिया गया कोड 2D सरणी को पॉप्युलेट करेगा, और फिर सरणी में मानों के साथ वर्कशीट की पंक्तियों और स्तंभों को पॉप्युलेट करेगा।
1234567891011121314151617181920212223242526 | उप Populate2D ()'2D सरणी घोषित करें'मंद intA(2, 3) पूर्णांक के रूप में'चर घोषित करें'पूर्णांक के रूप में मंद rwडिम कोल अस इंटीजर'सरणी को पॉप्युलेट करें'intA(0, 0) = 45intA(0, 1) = ५०intA(0, 2) = 55intA(0, 3) = ६०इंटए(1, 0) = 65इंटए(1, 1) = 70इंटए(1, 2) = 75इंट ए(1, 3) = 80इंटए(2, 0) = 85इंटए(2, 1) = 90इंटए(2, 2) = 95intA(2, 3) = १००'सरणी के माध्यम से लूप और एक्सेल को पॉप्युलेट करें'rw = 0 से 2 . के लिएकर्नल = 0 से 3 . के लिएसेल (आरडब्ल्यू + 1, कर्नल + 1)। मान = intA (आरडब्ल्यू, कर्नल)अगला कॉलमअगला आरडब्ल्यूअंत उप |
आपकी एक्सेल स्प्रैडशीट को निम्नानुसार पॉप्युलेट किया जाना चाहिए।
एक्सेल डेटा से 2D ऐरे को पॉप्युलेट करना
नीचे दिया गया कोड एक्सेल वर्कशीट से 2डी एरे को पॉप्युलेट करेगा और फिर डेटा के साथ एक अलग शीट को पॉप्युलेट करेगा।
1234567891011121314151617181920212223242526 | उप Populate2D ()'कार्यपत्रक घोषित करें'वर्कशीट के रूप में मंद ws_Sourceवर्कशीट के रूप में मंद ws_Destination'सरणी घोषित करें'Dim wsData(10, 2) वैरिएंट के रूप में'चर घोषित करें'पूर्णांक के रूप में मंद rwडिम कोल अस इंटीजर'स्रोत पत्रक देखें'Ws_Source = वर्कशीट सेट करें ("शीट 1")'स्रोत पत्रक से जानकारी प्राप्त करें और सरणी को पॉप्युलेट करें'rw = LBound(wsData, 1) के लिए UBound(wsData, 1) के लिएकर्नल के लिए = LBound(wsData, 2) से UBound(wsData, 2)wsData(rw, col) = ws_Source.Range("A2").Offset(rw, col).Valueअगला कॉलमअगला आरडब्ल्यू'गंतव्य पत्रक का संदर्भ लें'Ws_Destination = वर्कशीट सेट करें ("शीट 2")' ऐरे से डेस्टिनेशन शीट को पॉप्युलेट करेंrw = LBound(wsData, 1) के लिए UBound(wsData, 1) के लिएकर्नल के लिए = LBound(wsData, 2) टू UBound(wsData, 2)ws_Destination.Range("A1").Offset(rw,col).Value = wsData(rw, col)अगला कॉलमअगला आरडब्ल्यूअंत उप |
ReDim और Re-Dim Preserve का उपयोग करके आकार बदलना
आप का उपयोग करके एक सरणी का आकार बदल सकते हैं रेडिम.
1234567891011121314151617 | उप आकार 2 डी ()'सरणी घोषित करें'मंद varArray () संस्करण के रूप में'सरणी का आकार घोषित करें'रेडिम वरअरे(1, 2)varArray(0, 0) = "मेल स्मिथ"varArray(0, 1) = "फ्रेड बकल"varArray(0, 2) = "जेन आयर"varArray(1, 0) = "लेखाकार"varArray(1, 1) = "सचिव"varArray(1, 2) = "डॉक्टर"'सरणी के आकार को फिर से घोषित करें'रेडिम वरअरे(0, 1)'सरणी को फिर से भरना'varArray(0, 0) = "मेल स्मिथ"varArray(0, 1) = "फ्रेड बकल"अंत उप |
जब आप सरणी को फिर से घोषित करते हैं, तो आप सरणी में पहले से रखे गए किसी भी डेटा को खो देंगे जब तक कि आप इसका उपयोग नहीं करते हैं रेडिम प्रिजर्व स्टेटमेंट.
12345678910111213141516 | उप आकार 2 डी ()'सरणी Dim varArray() को वैरिएंट के रूप में घोषित करें'सरणी का आकार घोषित करें'रेडिम वरअरे(1, 2)varArray(0, 0) = "मेल स्मिथ"varArray(0, 1) = "फ्रेड बकल"varArray(0, 2) = "जेन आयर"varArray(1, 0) = "लेखाकार"varArray(1, 1) = "सचिव"varArray(1, 2) = "डॉक्टर"'सरणी के आकार को फिर से घोषित करें'रेडिम प्रिवरव varArray(1, 3)'अतिरिक्त मानों के साथ सरणी को पॉप्युलेट करें'varArray(0, 3) = "रॉब बार्न्स"varArray(1, 3) = "प्लम्बर"अंत उप |
यदि आप मूल डेटा को ऐरे में रखना चाहते हैं तो आप केवल ऐरे के अंतिम आयाम का आकार बदल सकते हैं पुन: मंद संरक्षित.
जब आप डिबग पर क्लिक करते हैं, तो त्रुटि को यह दिखाते हुए हाइलाइट किया जाएगा कि सरणी में पहला आयाम पहले आयाम के समान नहीं है जब सरणी का आकार मूल रूप से घोषित किया गया था।