Სარჩევი
მაივი არის ცვლადი, რომელიც ინახავს იგივე ტიპის მონაცემებს. თუ მონაცემთა მხოლოდ ერთი მწკრივი ან ერთი სვეტია, მაშინ ის ცნობილია როგორც ერთგანზომილებიანი მასივი. თუმცა, როდესაც არის ერთზე მეტი მწკრივი და სვეტი, მას უწოდებენ 2D მასივს. ჩვენ ვიყენებთ ReDim VBA-ში მასივის ზომის შესაცვლელად. გარდა ამისა, ჩვენ ვიყენებთ Preserve საკვანძო სიტყვას ReDim , რათა ძველი მონაცემები ხელუხლებლად შევინარჩუნოთ. ეს სტატია გაჩვენებთ 2 სწრაფ გზებს „ ReDim Preserve “ 2D მასივი Excel VBA .
ჩამოტვირთეთ სავარჯიშო სამუშაო წიგნი
Macro to ReDim Preserve 2D.xlsm
2 მოსახერხებელი მიდგომა ReDim Preserve 2D Array in Excel VBA
ეს არის საბაზისო მონაცემთა ნაკრები, რომელიც შექმნილია 2D მასივიდან სამი მწკრივით და ორი სვეტით. პირველ რიგში, ჩვენ შევქმნით ამ მასივს. შემდეგ ამ მასივს დავამატებთ კიდევ ერთ სვეტს. ჩვენ გამოვიყენებთ „ ReDim Preserve “ ამისთვის. გარდა ამისა, ჩვენ ვაჩვენებთ, რა მოხდება, თუ ამას არ გამოვიყენებთ.
ნაგულისხმევად, ჩვენ შეგვიძლია მხოლოდ მასივის ბოლო განზომილების (ანუ სვეტების ან ზედა ზღვარის) ზომის შეცვლა. ჩვენ განვათავსებთ მასივს, შემდეგ შევცვლით ბოლო განზომილებას და შემდეგ ხელახლა გადავიტანთ 2D მასივის ზომის ზომის შეცვლას Excel VBA-ში.
1 ReDim Preserve Last Dimension 2D Array
ჩვენ ჯერ განვსაზღვრავთ 2D მასივს როგორც დინამიურს. შემდეგ, ReDim განაცხადის გამოყენებით, ჩვენ შევქმნითმასივი სამი მწკრივით და ორი სვეტით. და ბოლოს, ჩვენ კვლავ გამოვიყენებთ ReDim განცხადებას Preserve საკვანძო სიტყვით გაზარდეთ ორგანზომილებიანი მასივის ზედა ზღვარი.
ნაბიჯები:
- დასაწყისად დააჭირეთ ALT+F11 VBA Module ფანჯრის გასახსნელად. ალტერნატიულად, ამის გაკეთება შეგიძლიათ დეველოპერი ჩანართიდან → აირჩიეთ Visual Basic .
- შემდეგ, . 1> ჩასვით ჩანართი → აირჩიეთ მოდული . ჩვენ აქ ჩავწერთ VBA კოდს.
- შემდეგ, ჩაწერეთ შემდეგი კოდი მოდულში ფანჯარა.
3002
VBA კოდის დაშლა
- პირველ რიგში, ჩვენ ვუწოდებთ Sub პროცედურა “ Redim_Preserve_2D_Array_Row ”.
- შემდეგ, ჩვენ ვაცხადებთ ცვლადს Our_Array , როგორც დინამიურ მასივს.
- შემდეგ, ჩვენ განვსაზღვრავთ მასივის ზომას. ქვედა ზღვარი არის 3 , ზედა ზღვარი არის 2 და ორივე იწყება 1 -დან.
- შემდეგ, მასივს მივანიჭებთ მნიშვნელობებს. .
- ამის შემდეგ, ჩვენ შევიყვანთ მნიშვნელობებს C6:D8 უჯრედების დიაპაზონში.
- ამის შემდეგ, ჩვენ შეასრულებს კოდს.
- ასე რომ, შეინახეთ მოდული და დააჭირეთ Run .
- შედეგად, ის დააბრუნებს მნიშვნელობებს უჯრედების განსაზღვრულ დიაპაზონში. ჩვენ ვხედავთ, რომ „ რეიჩელ “ არის მწკრივში 1 და სვეტში 1 პოზიციაზე,რომელიც განისაზღვრა როგორც ( 1,1 ) VBA კოდში.
- ახლა ჩვენ შევცვლით მასივის ზომას.
- ასე რომ, დაამატეთ ეს წინა კოდს და წაშალეთ პირველი Range.Value განცხადება . გარდა ამისა, როგორ გამოიყურება კოდი, შეგიძლიათ იხილოთ ქვემოთ მოცემული სნეპშოტიდან.
7790
- აქ, ჩვენ გავზარდეთ ზედა ზღვარი ( ) 1 2 ) დან ( 1 3 ) 1 .
- მაშინ, ჩვენ დავამატეთ მნიშვნელობები მასივში.
- ახლა თუ შევასრულებთ ამ კოდს, დავინახავთ, რომ წინა მნიშვნელობები არ არის დაცული. ის დაბრუნდება ცარიელი წინა მნიშვნელობებისთვის.
- ახლა, ჩვენ შეგვიძლია გამოვასწოროთ ეს შენახვა საკვანძო სიტყვის დამატებაში 1>ReDim განცხადება .
- და ბოლოს, ჩვენი სრული კოდი იქნება ეს.
2820
- ახლა, თუ ჩვენ გაუშვით ეს კოდი, შემდეგ გამომავალი იქნება ასეთი. ამრიგად, ჩვენ „ ReDim Preserve “ 2D მასივის ბოლო განზომილებას ვაძლევთ Excel VBA-ში. ახლა შემდეგი მეთოდი გაჩვენებთ, თუ როგორ უნდა „ ReDim შეინახეთ “ და შეცვალეთ მასივის ორივე განზომილება.
წაიკითხეთ მეტი: VBA რომ მიიღოთ უნიკალური მნიშვნელობები სვეტიდან მასივში Excel-ში (3 კრიტერიუმი)
მსგავსი წაკითხვები
- როგორ დავასახელოთ ცხრილის მასივი Excel-ში (ერთად მარტივი ნაბიჯები)
- Excel VBA CSV ფაილის მასივში წასაკითხად (4 იდეალური მაგალითი)
- როგორ გადავიტანოთ დიაპაზონი მასივში Excel-შიVBA (3 გზა)
- Excel VBA: ამოიღეთ დუბლიკატები მასივიდან (2 მაგალითი)
2. ReDim შეინახეთ ორივე განზომილება 2D მასივი Excel VBA
ამ საბოლოო მეთოდში ჩვენ გაჩვენებთ ზომების შეცვლის ნაბიჯებს და „ ReDim Preserve “ 2D მასივი . აქ ჩვენ გამოვიყენებთ VBA Transpose ფუნქციას, რათა შევცვალოთ მასივის ქვედა ზღვარი. თუ ჩვენ ვცდილობდით მასივის ქვედა საზღვრის ზომის შეცვლას პირველი მეთოდით, მაშინ დავინახავთ შეცდომას „ გამოწერა დიაპაზონის გარეთ “. ახლა, ყოველგვარი შეფერხების გარეშე, ვნახოთ, როგორ შეგვიძლია გამოვასწოროთ ეს და მივაღწიოთ ჩვენს მიზანს.
ნაბიჯები:
- პირველ რიგში, როგორც ნაჩვენებია პირველ მეთოდში , გახსენით Module ფანჯარა.
- მეორე, დაამატეთ კოდის შემდეგი სტრიქონები პირველი კოდი.
3054
- უფრო მეტიც, საბოლოო მეთოდის კოდი ასე გამოიყურება.
7194
VBA კოდის დაშლა
- პირველ რიგში, ჩვენ ვუწოდებთ ქვეპროცედურს „ ReDim_Preserve_2D_Array_Both_Dimensions “ .
- შემდეგ, დანარჩენი კოდები VBA Transpose ფუნქციამდე იგივეა რაც პირველ კოდში.
- აქ, ჩვენ მიმდინარეობს მასივის ტრანსპოზირება.
- შემდეგ, ჩვენ ვზრდით მასივის ზედა ზღვარს.
- ამის შემდეგ, ჩვენ ხელახლა გადავიტანთ მასივს. ამიტომ, საბოლოო ჯამში ის შეცვლის ქვედა ზღვარს.
- შემდეგ, ჩვენ შევიყვანთ მნიშვნელობებს ზომის შეცვლილი მასივისთვის, სანამძველი მონაცემების შენახვა.
- ბოლოს, ჩვენ ვწერთ მნიშვნელობებს უჯრედების დიაპაზონში C6:E9 .
- შემდეგ რომ, როგორც ნაჩვენებია პირველ მეთოდში , გაუშვით ეს კოდი.
- ამგვარად, ჩვენ შეგვიძლია ვიზუალურად წარმოვიდგინოთ, თუ როგორ ინახავს კოდი 2D მასივი „ ReDim Preserve “ და VBA Transpose ფუნქციის გამოყენებით.
წაიკითხეთ მეტი: VBA მასივის გადასატანად Excel-ში (3 მეთოდი)
დასამახსოვრებელი რამ
- ReDim Preserve არ შეუძლია შეცვალოს მასივის ქვედა ზღვარი. ამისათვის ჩვენ უნდა გამოვიყენოთ Transpose ფუნქცია.
- ჩვენ შეგვიძლია გამოვიყენოთ ReDim მხოლოდ დინამიურ მასივებზე.
დასკვნა
ჩვენ გაჩვენეთ ორი სწრაფი გზა „ ReDim Preserve “ 2D მასივი Excel VBA-ში. თუ თქვენ გაქვთ რაიმე პრობლემა ამ მეთოდებთან დაკავშირებით ან გაქვთ რაიმე გამოხმაურება ჩემთვის, მოგერიდებათ კომენტარის გაკეთება ქვემოთ. გარდა ამისა, შეგიძლიათ ეწვიოთ ჩვენს საიტს ExcelWIKI მეტი Excel-თან დაკავშირებული სტატიებისთვის. გმადლობთ, რომ კითხულობთ, განაგრძეთ ბრწყინვალება!