सामग्री तालिका
एर्रे एउटा चर हो जसले समान प्रकारको डाटा राख्छ। यदि त्यहाँ डेटाको एक पङ्क्ति वा एक स्तम्भ मात्र छ भने, यसलाई एक-आयामी एरे भनेर चिनिन्छ। यद्यपि, जब त्यहाँ एक भन्दा बढी पङ्क्ति र स्तम्भहरू हुन्छन्, यसलाई 2D एरे भनिन्छ। VBA मा एर्रे रिसाइज गर्न हामी ReDim प्रयोग गर्छौं। थप रूपमा, हामी पुरानो डाटालाई अक्षुण्ण राख्न ReDim को साथ संरक्षण कीवर्ड प्रयोग गर्छौं। यस लेखले तपाईंलाई 2 “ ReDim संरक्षण ” a 2D array Excel VBA<मा द्रुत तरिकाहरू देखाउनेछ। 3> ।
अभ्यास कार्यपुस्तिका डाउनलोड गर्नुहोस्
ReDim संरक्षण गर्न म्याक्रो 2D.xlsm
2 उपयोगी दृष्टिकोणहरू एक्सेल VBA मा ReDim संरक्षित 2D एरे
यो आधार डेटासेट हो जुन 2D एरे तीन पङ्क्ति र दुई स्तम्भहरूबाट सिर्जना गरिएको हो। पहिले, हामी यो एरे सिर्जना गर्नेछौं। त्यसपछि, हामी यो एरेमा अर्को स्तम्भ थप्नेछौं। त्यसो गर्न हामी " ReDim Preserve " को प्रयोग गर्नेछौं। थप रूपमा, हामीले यो प्रयोग नगरेमा के हुन्छ भनेर हामी प्रदर्शन गर्नेछौं।
पूर्वनिर्धारित रूपमा, हामी एरेको अन्तिम आयाम (जस्तै स्तम्भ वा माथिल्लो बाउन्ड) मात्र रिसाइज गर्न सक्छौं। हामी array लाई स्थानान्तरण गर्नेछौं, त्यसपछि अन्तिम आयाम परिवर्तन गर्नेछौं, र त्यसपछि एक्सेल VBA मा 2D array को दुबै आयामहरू रिसाइज गर्न फेरि ट्रान्सपोज गर्नेछौं।
1 ReDim Preserve Last Dimension 2D Array
हामी पहिले 2D array लाई डायनामिकको रूपमा परिभाषित गर्नेछौं। त्यसपछि, ReDim कथन प्रयोग गरेर, हामी एउटा सिर्जना गर्नेछौंतीन पङ्क्ति र दुई स्तम्भहरूको साथ एरे। अन्तमा, हामी फेरि ReDim कथन प्रयोग गर्नेछौं सुरक्षित गर्नुहोस् कीवर्ड मा दुई आयामी एरेको माथिल्लो सीमा बढाउनुहोस्।
चरणहरू:
- सुरु गर्न ALT+F11 थिच्नुहोस्। VBA मोड्युल विन्डो ल्याउन। वैकल्पिक रूपमा, तपाईंले विकासकर्ता ट्याब → चयन गर्नुहोस् भिजुअल बेसिक बाट यो गर्न सक्नुहुन्छ।
- त्यसपछि, घुसाउनुहोस् ट्याब → चयन गर्नुहोस् मोड्युल । हामी यहाँ VBA कोड टाइप गर्नेछौं।
- अर्को, मोड्युल मा निम्न कोड टाइप गर्नुहोस्। window.
9019
VBA कोड ब्रेकडाउन
- सबैभन्दा पहिले, हामी कल गर्दैछौँ उपप्रक्रिया “ Redim_Preserve_2D_Array_Row ”।
- त्यसपछि, हामीले चल Our_Array लाई डायनामिक एरेको रूपमा घोषणा गर्छौं।
- अर्को, हामी array को आकार परिभाषित गर्छौं। तल्लो बाउन्ड 3 हो, माथिल्लो बाउन्ड 2 हो, र दुबै 1 बाट सुरु हुन्छ।
- त्यसपछि, हामी एरेमा मानहरू तोक्छौं। .
- त्यसपछि, हामीले मानहरूलाई C6:D8 सेल दायरामा इनपुट गर्छौँ।
- त्यसपछि, हामी कोड कार्यान्वयन गर्नेछ।
- त्यसोभए, बचत गर्नुहोस् मोड्युल र रन<थिच्नुहोस्। 3> ।
- परिणामको रूपमा, यसले मानहरूलाई परिभाषित कक्ष दायरामा फर्काउनेछ। हामी देख्न सक्छौं कि " राचेल " पङ्क्ति 1 र स्तम्भ 1 स्थितिमा छ,जसलाई VBA कोडमा ( 1,1 ) को रूपमा परिभाषित गरिएको थियो।
- अब, हामी एरेको आकार बदल्नेछौं।
- त्यसोभए, यसलाई अघिल्लो कोडमा थप्नुहोस् र पहिलो रेन्ज. मान स्टेटमेन्ट हटाउनुहोस्। यसबाहेक, तपाईले तलको स्न्यापसटबाट देख्न सक्नुहुन्छ कोड कस्तो देखिन्छ।
5742
- यहाँ, हामीले ( ) बाट माथिल्लो सीमा बढाएका छौं। 1 प्रति 2 ) देखि ( 1 प्रति 3 ) 1<4 द्वारा>।
- त्यसपछि, हामीले एरेमा मानहरू थपेका छौं।
- अब यदि हामीले यो कोड कार्यान्वयन गर्छौं भने, हामीले अघिल्लो मानहरू सुरक्षित नभएको देख्नेछौं। यो अघिल्लो मानहरूका लागि खाली फर्किनेछ।
- अब, हामी प्रिजर्भ किवर्ड लाई <मा थपेर यसलाई ठीक गर्न सक्छौँ। 1>ReDim कथन ।
- अन्तमा, हाम्रो पूर्ण कोड यो हुनेछ।
7872
- अब, यदि हामी <यो कोड 1> Run , त्यसपछि आउटपुट यस्तो हुनेछ। यसरी, हामी Excel VBA मा 2D array को अन्तिम आयाम “ ReDim Preserve ” गर्नेछौं। अब, अर्को विधिले कसरी “ ReDim गर्ने भनेर देखाउनेछ ” सुरक्षित गर्नुहोस् र एरेको दुवै आयामहरू पुन: आकार दिनुहोस्।
थप पढ्नुहोस्: अद्वितीय प्राप्त गर्न VBA एक्सेलमा एरेमा स्तम्भबाट मानहरू (३ मापदण्ड)
समान पठनहरू
- एक्सेलमा तालिका एरेलाई कसरी नाम दिने (सहित सजिलो चरणहरू)
- Excel VBA CSV फाइललाई एरेमा पढ्नको लागि (४ आदर्श उदाहरणहरू)
- कसरी एक्सेलमा दायरालाई एरेमा रूपान्तरण गर्नेVBA (3 तरिकाहरू)
- Excel VBA: एरेबाट डुप्लिकेटहरू हटाउनुहोस् (२ उदाहरणहरू)
2. ReDim दुवै आयाम 2D एरेलाई सुरक्षित गर्नुहोस् एक्सेल VBA
यस अन्तिम विधिमा, हामी तपाईंलाई रिसाइज गर्ने र “ ReDim Preserve ” 2D array गर्ने चरणहरू देखाउनेछौं। यहाँ, हामी array को तल्लो बाउन्ड रिसाइज गर्न VBA Transpose प्रकार्य प्रयोग गर्नेछौं। यदि हामीले पहिलो विधिमा एरेको तल्लो बाउन्डलाई रिसाइज गर्ने प्रयास गर्यौं भने, हामीले " Subscript out of दायरा " त्रुटि देख्नेछौं। अब, थप हल्ला नगरी, हामी यसलाई कसरी समाधान गर्न सक्छौं र हाम्रो लक्ष्य हासिल गर्न सक्छौं हेरौं।>पहिले, पहिलो विधिमा देखाइए अनुसार , मोड्युल विन्डो ल्याउनुहोस्।
9973
- यसबाहेक, अन्तिम विधिको कोड यस्तो देखिन्छ।
7041
VBA कोड ब्रेकडाउन
- सबैभन्दा पहिले, हामीले उप प्रक्रिया " ReDim_Preserve_2D_Array_Both_Dimensions " लाई कल गर्दैछौं।
- त्यसपछि, VBA ट्रान्सपोज प्रकार्य सम्मका बाँकी कोडहरू पहिलो कोडमा जस्तै छन्।
- यहाँ, हामी एरे ट्रान्सपोज गर्दैछौं।
- त्यसपछि, हामी एरेको माथिल्लो बाउन्ड बढाउँदैछौं।
- त्यसपछि, हामी फेरि एरे ट्रान्सपोज गर्छौं। तसर्थ, अन्ततः यसले तल्लो बाउन्डलाई परिवर्तन गर्नेछ।
- अर्को, हामीले पुन:आकार एरेका लागि मानहरू इनपुट गर्छौं जबकिपुरानो डाटा सुरक्षित गर्दै।
- अन्तमा, हामी सेल दायरा C6:E9 मा मानहरू लेख्छौं।
- पछि त्यो, पहिलो विधिमा देखाइए अनुसार , रन यो कोड।
- यसैले, हामी कसरी कोडले सुरक्षित गर्छ भनेर कल्पना गर्न सक्छौं। 2D array " ReDim Preserve " र VBA Transpose प्रकार्य प्रयोग गरेर।
थप पढ्नुहोस्: VBA to Excel मा एरे ट्रान्सपोज गर्नुहोस् (३ विधिहरू)
याद राख्नु पर्ने कुराहरू
- ReDim Preserve ले array को तल्लो बाउन्ड परिवर्तन गर्न सक्दैन। त्यसो गर्नको लागि, हामीले Transpose प्रकार्य प्रयोग गर्न आवश्यक छ।
- हामी डायनामिक एरेहरूमा ReDim मात्र प्रयोग गर्न सक्छौं। <16
निष्कर्ष
हामीले एक्सेल VBA मा " ReDim संरक्षण " a 2D array गर्ने दुई द्रुत तरिकाहरू देखाउनुभएको छ। यदि तपाइँ यी विधिहरूको बारेमा कुनै समस्या सामना गर्नुहुन्छ वा मेरो लागि कुनै प्रतिक्रिया छ भने, तल टिप्पणी गर्न नहिचकिचाउनुहोस्। यसबाहेक, तपाईले हाम्रो साइट ExcelWIKI भ्रमण गर्न सक्नुहुन्छ थप एक्सेल-सम्बन्धित लेखहरूको लागि। पढ्नको लागि धन्यवाद, उत्कृष्ट बनाइरहनुहोस्!