एक्सेल वीबीए में 2डी ऐरे को कैसे संरक्षित करें (2 आसान तरीके)

  • इसे साझा करें
Hugh West

सरणी एक वेरिएबल है जो समान प्रकार का डेटा रखता है। यदि डेटा की केवल एक पंक्ति या एक स्तंभ है, तो इसे एक आयामी सरणी के रूप में जाना जाता है। हालाँकि, जब एक से अधिक पंक्ति और स्तंभ होते हैं, तो इसे 2D सरणी कहा जाता है। VBA में किसी सरणी का आकार बदलने के लिए हम ReDim का उपयोग करते हैं। इसके अतिरिक्त, हम पुराने डेटा को अक्षुण्ण रखने के लिए संरक्षित कीवर्ड का उपयोग ReDim के साथ करते हैं। यह लेख आपको 2 " ReDim Preserve " a 2D array in Excel VBA<के त्वरित तरीके दिखाएगा। 3> .

प्रैक्टिस वर्कबुक डाउनलोड करें

मैक्रो टू रिडिम प्रिजर्व 2D.xlsm

2 सुविधाजनक तरीके ReDim Preserve 2D Array in Excel VBA

यह तीन पंक्तियों और दो स्तंभों के साथ 2D सरणी से बनाया गया आधार डेटासेट है। सबसे पहले, हम इस सरणी का निर्माण करेंगे। फिर, हम इस सरणी में एक और कॉलम जोड़ेंगे। ऐसा करने के लिए हम “ ReDim Preserve ” का इस्तेमाल करेंगे। इसके अतिरिक्त, हम प्रदर्शित करेंगे कि यदि हम इसका उपयोग नहीं करते हैं तो क्या होता है।

डिफ़ॉल्ट रूप से, हम केवल सरणी के अंतिम आयाम (अर्थात कॉलम या ऊपरी सीमा) का आकार बदल सकते हैं। हम सरणी को स्थानांतरित करेंगे, फिर अंतिम आयाम को बदल देंगे, और फिर Excel VBA में 2D सरणी के दोनों आयामों का आकार बदलने के लिए फिर से स्थानांतरित करेंगे।

1 ReDim Preserve Last Dimension 2D Array

हम सबसे पहले 2D array को डायनामिक के रूप में परिभाषित करेंगे। फिर, ReDim स्टेटमेंट का उपयोग करके, हम एक बनाएँगेतीन पंक्तियों और दो स्तंभों के साथ सरणी। अंत में, हम ReDim स्टेटमेंट का फिर से Preserve कीवर्ड के साथ उपयोग करेंगे दो आयामी सरणी की ऊपरी सीमा बढ़ाएँ।

चरण:

  • शुरू करने के लिए, ALT+F11 दबाएँ VBA मॉड्यूल विंडो लाने के लिए। वैकल्पिक रूप से, आप इसे डेवलपर टैब से कर सकते हैं → विज़ुअल बेसिक चुनें।
  • फिर, <से 1> टैब डालें → मॉड्यूल चुनें। हम यहां VBA कोड टाइप करेंगे। window.
5669

VBA कोड ब्रेकडाउन

  • सबसे पहले, हम कॉल कर रहे हैं उप प्रक्रिया " Redim_Preserve_2D_Array_Row "।
  • फिर, हम चर Our_Array को गतिशील सरणी के रूप में घोषित करते हैं।
  • अगला, हम सरणी के आकार को परिभाषित करते हैं। निचला बाउंड 3 है, ऊपरी बाउंड 2 है, और दोनों 1 से शुरू होते हैं।
  • फिर, हम ऐरे को वैल्यू असाइन करते हैं .
  • उसके बाद, हम C6:D8 सेल रेंज में वैल्यू इनपुट करते हैं।
  • उसके बाद, हम कोड निष्पादित करेगा।
  • इसलिए, सेव मॉड्यूल और प्रेस चलाएं

  • परिणामस्वरूप, यह मानों को परिभाषित सेल श्रेणियों में वापस कर देगा। हम देख सकते हैं कि “ रेचल ” पंक्ति 1 और कॉलम 1 स्थिति में है,जिसे VBA कोड में ( 1,1 ) के रूप में परिभाषित किया गया था।

  • अब, हम सरणी का आकार बदल देंगे।
  • इसलिए, इसे पिछले कोड में जोड़ें और पहले रेंज.वैल्यू स्टेटमेंट को हटा दें। इसके अलावा, कोड कैसा दिखता है, आप नीचे दिए गए स्नैपशॉट से देख सकते हैं।
9567

  • यहां, हमने ऊपरी सीमा को ( से बढ़ा दिया है 1 टू 2 ) से ( 1 टू 3 ) तक 1 .
  • फिर, हमने सरणी में मान जोड़े हैं।
  • अब यदि हम इस कोड को निष्पादित करते हैं, तो हम देखेंगे कि पिछले मान संरक्षित नहीं हैं। यह पिछले मानों के लिए खाली लौटेगा।

  • अब, हम प्रेजर्व कीवर्ड को <में जोड़कर इसे ठीक कर सकते हैं। 1>ReDim कथन ।
  • अंत में, हमारा पूरा कोड यह होगा।
5083

  • अब, यदि हम इस कोड को रन करें, तो आउटपुट इस तरह होगा। इस प्रकार, हम एक्सेल VBA में 2D सरणी के अंतिम आयाम " ReDim संरक्षित " करेंगे। अब, अगली विधि आपको दिखाएगी कि कैसे " ReDim संरक्षित करें ” और सरणी के दोनों आयामों का आकार बदलें। एक्सेल में कॉलम से ऐरे में मान (3 मानदंड)

    समान रीडिंग

    • एक्सेल में टेबल ऐरे का नाम कैसे दें (साथ में) आसान चरण)
    • CSV फ़ाइल को ऐरे में पढ़ने के लिए एक्सेल VBA (4 आदर्श उदाहरण)
    • एक्सेल में रेंज को ऐरे में कैसे बदलेंVBA (3 तरीके)
    • Excel VBA: एक सरणी से डुप्लिकेट निकालें (2 उदाहरण)

    2. ReDim दोनों आयामों को 2D सरणी में संरक्षित करें एक्सेल VBA

    इस अंतिम विधि में, हम आपको आकार बदलने के चरण दिखाएंगे और 2D सरणी को " ReDim Preserve " दिखाएंगे। यहां, हम VBA ट्रांज़ोज़ फ़ंक्शन का उपयोग सरणी के निचले बाउंड को आकार देने के लिए करेंगे। यदि हमने पहली विधि में सरणी की निचली सीमा का आकार बदलने का प्रयास किया है, तो हमें " सबस्क्रिप्ट सीमा से बाहर " त्रुटि दिखाई देगी। अब, बिना किसी देरी के, देखते हैं कि हम इसे कैसे ठीक कर सकते हैं और अपने लक्ष्य को प्राप्त कर सकते हैं।

    कदम:

    • सबसे पहले, जैसा कि पहली विधि में दिखाया गया है , मॉड्यूल विंडो को ऊपर लाएं।
    • दूसरा, कोड की निम्नलिखित पंक्तियों को इसमें जोड़ें पहला कोड।
    6111
    • इसके अलावा, अंतिम विधि के लिए कोड इस तरह दिखता है।
    9036

    VBA कोड ब्रेकडाउन

    • सबसे पहले, हम सब प्रोसीजर " ReDim_Preserve_2D_Array_Both_Dimensions " कह रहे हैं .
    • फिर, VBA ट्रांज़ोज़ फ़ंक्शन तक के बाकी कोड पहले कोड की तरह ही हैं।
    • यहाँ, हम सरणी को स्थानांतरित कर रहे हैं।
    • फिर, हम सरणी की ऊपरी सीमा बढ़ा रहे हैं।
    • उसके बाद, हम सरणी को फिर से स्थानांतरित कर रहे हैं। इसलिए, अंतत: यह निचली सीमा को बदल देगा।पुराने डेटा को संरक्षित करना।
    • अंत में, हम मूल्यों को सेल श्रेणी C6:E9 में लिखते हैं।
    • बाद में कि, जैसा कि पहले तरीके में दिखाया गया है , इस कोड को चलाएं।
    • इस प्रकार, हम कल्पना कर सकते हैं कि कोड कैसे 2डी सरणी " रीडिम प्रिजर्व " और वीबीए ट्रांज़ोज़ फ़ंक्शन का उपयोग करके।

    और पढ़ें: एक्सेल में ऐरे को ट्रांसपोज़ करने के लिए VBA (3 विधियाँ)

    याद रखने योग्य बातें

    • ReDim Preserve सरणी की निचली सीमा को नहीं बदल सकता है। ऐसा करने के लिए, हमें ट्रांसपोज़ फ़ंक्शन का उपयोग करने की आवश्यकता है।
    • हम केवल गतिशील सरणियों पर ReDim का उपयोग कर सकते हैं।
    • <16

      निष्कर्ष

      हमने आपको एक्सेल VBA में " ReDim Preserve " a 2D array करने के दो त्वरित तरीके दिखाए हैं। यदि आपको इन तरीकों के बारे में कोई समस्या आती है या मेरे लिए कोई प्रतिक्रिया है, तो नीचे टिप्पणी करने में संकोच न करें। इसके अलावा, आप एक्सेल से संबंधित अधिक लेखों के लिए हमारी साइट ExcelWIKI पर जा सकते हैं। पढ़ने के लिए धन्यवाद, उत्कृष्ट प्रदर्शन करते रहें!

ह्यूग वेस्ट उद्योग में 10 से अधिक वर्षों के अनुभव के साथ एक अत्यधिक अनुभवी एक्सेल ट्रेनर और विश्लेषक है। उनके पास लेखा और वित्त में स्नातक की डिग्री और व्यवसाय प्रशासन में मास्टर डिग्री है। ह्यूग को पढ़ाने का शौक है और उन्होंने एक अद्वितीय शिक्षण दृष्टिकोण विकसित किया है जिसका पालन करना और समझना आसान है। एक्सेल के उनके विशेषज्ञ ज्ञान ने दुनिया भर में हजारों छात्रों और पेशेवरों को अपने कौशल में सुधार करने और अपने करियर में उत्कृष्टता हासिल करने में मदद की है। अपने ब्लॉग के माध्यम से, ह्यूग दुनिया के साथ अपने ज्ञान को साझा करता है, व्यक्तियों और व्यवसायों को उनकी पूरी क्षमता तक पहुंचने में मदद करने के लिए मुफ्त एक्सेल ट्यूटोरियल और ऑनलाइन प्रशिक्षण प्रदान करता है।