Excel VBA-da 2D massivni qanday o'zgartirish mumkin (2 oson usul)

  • Buni Baham Ko'Ring
Hugh West

Masiv bir xil turdagi ma'lumotlarni saqlaydigan o'zgaruvchidir. Agar ma'lumotlarning faqat bitta satri yoki bitta ustuni bo'lsa, u bir o'lchovli massiv deb nomlanadi. Biroq, bir nechta satr va ustunlar mavjud bo'lsa, u 2D massiv deb ataladi. VBA-da massiv hajmini o'zgartirish uchun ReDim dan foydalanamiz. Bundan tashqari, biz eski ma'lumotlarni saqlab qolish uchun Preserve kalit so'zidan ReDim bilan foydalanamiz. Ushbu maqola sizga 2 Excel VBA 2D massivi ni “ ReDim Preserve ” ning tezkor usullarini ko'rsatib beradi. 3> .

Amaliyot kitobini yuklab oling

Makro to ReDim Preserve 2D.xlsm

2 ta qulay yondashuv ReDim Preserve 2D massivini Excel VBA da

Bu uch satr va ikkita ustunli 2D massiv dan yaratilgan asosiy ma'lumotlar to'plami. Birinchidan, biz ushbu massivni yaratamiz. Keyin, biz ushbu massivga yana bir ustun qo'shamiz. Buning uchun biz “ ReDim Preserve ” dan foydalanamiz. Bundan tashqari, biz buni ishlatmasak nima bo'lishini ko'rsatamiz.

Sukut bo'yicha biz faqat massivning oxirgi o'lchamini (masalan, ustunlar yoki yuqori chegara) o'zgartirishimiz mumkin. Excel VBA da 2D massiv ning ikkala oʻlchamini oʻzgartirish uchun biz massivni oʻzgartiramiz, soʻng oxirgi oʻlchamni oʻzgartiramiz va keyin yana oʻzgartiramiz.

1 ReDim Oxirgi o'lchamli 2D massivini saqlab qo'ying

Biz avval 2D massivi ni dinamik deb belgilaymiz. Keyin ReDim operatoridan foydalanib, ni hosil qilamizuch qator va ikkita ustunli massiv. Nihoyat, ReDim iborasidan yana Preserve kalit so'zi uchun foydalanamiz. ikki o'lchovli massivning yuqori chegarasini oshiring.

Qadamlar:

  • Boshlash uchun ALT+F11 tugmalarini bosing. VBA moduli oynasini ochish uchun . Shu bilan bir qatorda, buni Dasturchi yorlig‘idan qilishingiz mumkin → Visual Basic -ni tanlang.
  • Keyin, Qo'yish yorlig'i → Module -ni tanlang. Bu yerda VBA kodini kiritamiz.

  • Keyin, Module ga quyidagi kodni kiriting. oyna.
1605

VBA kodini ajratish

  • Birinchidan, biz qo'ng'iroq qilamiz Sub protsedura Redim_Preserve_2D_Array_Row ”.
  • Keyin biz Our_Array oʻzgaruvchisini dinamik massiv sifatida eʼlon qilamiz.
  • Keyin, massiv hajmini aniqlaymiz. Pastki chegara 3 , yuqori chegarasi 2 va ikkalasi ham 1 dan boshlanadi.
  • Keyin, massivga qiymatlar beramiz. .
  • Bundan keyin biz qiymatlarni C6:D8 yacheyka diapazoniga kiritamiz.
  • Bundan keyin biz kodni bajaradi.
  • Shunday qilib, Saqlash Moduli va Ishga tushirish .

  • Natijada u qiymatlarni belgilangan hujayra diapazonlariga qaytaradi. Biz “ Rachel ” satr 1 va ustun 1 pozitsiyasida ekanligini ko'rishimiz mumkin,Bu VBA kodida ( 1,1 ) sifatida aniqlangan.

  • Endi biz massiv hajmini o'zgartiramiz.
  • Shunday qilib, buni oldingi kodga qo'shing va birinchi Range.Value bayonotini olib tashlang. Bundan tashqari, kod qanday koʻrinishini quyidagi suratda koʻrishingiz mumkin.
2852

  • Bu erda biz ( dan yuqori chegarani oshirdik. 1 Kimga 2 ) ( 1 To 3 ) orqali 1 .
  • Keyin, biz qiymatlarni massivga qo'shdik.
  • Endi biz ushbu kodni bajarsak, oldingi qiymatlar saqlanmaganligini ko'ramiz. U oldingi qiymatlar uchun bo'sh joyni qaytaradi.

  • Endi buni Preserve kalit so'zini qo'shish orqali tuzatamiz. 1>ReDim bayonoti .
  • Nihoyat, bizning to'liq kodimiz bu bo'ladi.
5783

  • Endi, agar biz Ishga tushirish bu kod, keyin chiqish shunday bo'ladi. Shunday qilib, biz Excel VBA-da 2D massiv ning oxirgi o'lchamini “ ReDim Preserve ” ga aylantiramiz. Endi keyingi usul sizga “ ReDimni qanday qilishni ko'rsatib beradi. Saqlang ” va massivning ikkala oʻlchamini oʻzgartiring.

Batafsil oʻqing: VBA noyob olish uchun Excelda ustundan massivga qiymatlar (3 mezon)

Shunga o'xshash o'qishlar

  • Excelda jadval massivini qanday nomlash mumkin (bilan Oson qadamlar)
  • CSV faylini massivga oʻqish uchun Excel VBA (4 ta ideal misol)
  • Qanday qilib Excelda diapazonni massivga aylantirish mumkinVBA (3 yo'l)
  • Excel VBA: Massivdan dublikatlarni olib tashlang (2 ta misol)

2. ReDim 2D massivning ikkala o'lchamini ham saqlab qo'ying Excel VBA

Ushbu yakuniy usulda biz sizga 2D massivi hajmini o'zgartirish va “ ReDim Preserve ” qadamlarini ko'rsatamiz. Bu erda biz massivning pastki chegarasini o'zgartirish uchun VBA Transpose funksiyasidan foydalanamiz. Agar biz birinchi usulda massivning pastki chegarasini o‘zgartirishga harakat qilsak, u holda “ Subscript out of diapazon ” xatosini ko‘ramiz. Keling, uzoq davom etmasdan, buni qanday tuzatish va maqsadimizga erishish mumkinligini ko'rib chiqaylik.

Qadamlar:

  • Birinchidan, birinchi usulda ko'rsatilganidek , Module oynasini keltiring.
  • Ikkinchidan, quyidagi kod qatorlarini qo'shing. birinchi kod.
2480
  • Bundan tashqari, yakuniy usulning kodi shunday ko'rinadi.
5123

VBA kodini ajratish

  • Birinchi navbatda, biz Sub protsedura ReDim_Preserve_2D_Array_Both_Dimensions ” deb nomlaymiz. .
  • Keyin, VBA Transpose funksiyasiga qadar qolgan kodlar birinchi koddagi bilan bir xil.
  • Bu erda biz massivni transpozitsiya qilmoqda.
  • Keyin, biz massivning yuqori chegarasini oshiramiz.
  • Shundan so'ng biz massivni yana ko'chiramiz. Shuning uchun u oxir-oqibat pastki chegarani o'zgartiradi.
  • Keyin, biz o'lchami o'zgartirilgan massiv uchun qiymatlarni kiritamiz.eski ma'lumotlarni saqlab.
  • Oxir-oqibat, qiymatlarni C6:E9 katakcha diapazoniga yozamiz.
  • Keyin ya'ni birinchi usulda ko'rsatilganidek , Ishga tushirish ushbu kod.
  • Shunday qilib, biz kod ni qanday saqlab qolishini tasavvur qilishimiz mumkin. 2D massivi ReDim Preserve ” va VBA Transpose funksiyasidan foydalangan holda.

Batafsil o'qing: Masivni Excelda ko'chirish uchun VBA (3 usul)

Esda tutilishi kerak bo'lgan narsalar

  • ReDim Preserve massivning pastki chegarasini o'zgartira olmaydi. Buning uchun biz Transpose funksiyasidan foydalanishimiz kerak.
  • Biz faqat dinamik massivlarda ReDim dan foydalanishimiz mumkin.

Xulosa

Biz sizga Excel VBA-da 2D massiv ni “ ReDim Preserve ” ning ikkita tezkor usulini ko'rsatdik. Agar siz ushbu usullar bilan bog'liq muammolarga duch kelsangiz yoki men uchun biron bir fikr-mulohazangiz bo'lsa, quyida sharh qoldiring. Bundan tashqari, Excelga oid boshqa maqolalar uchun ExcelWIKI saytimizga tashrif buyurishingiz mumkin. O'qiganingiz uchun tashakkur, muvaffaqiyatda davom eting!

Hugh West - bu sohada 10 yildan ortiq tajribaga ega bo'lgan yuqori tajribali Excel treneri va tahlilchisi. Buxgalteriya hisobi va moliya yo‘nalishi bo‘yicha bakalavr va biznes boshqaruvi bo‘yicha magistr darajasiga ega. Xyu o'qitishga ishtiyoqi bor va unga amal qilish va tushunish oson bo'lgan o'ziga xos o'qitish usulini ishlab chiqdi. Uning Excel bo'yicha ekspert bilimlari butun dunyo bo'ylab minglab talabalar va mutaxassislarga o'z malakalarini oshirishga va o'z martabalarida muvaffaqiyat qozonishlariga yordam berdi. Xyu o'z blogi orqali o'z bilimlarini dunyo bilan baham ko'radi, jismoniy shaxslar va korxonalarga o'z salohiyatini to'liq ro'yobga chiqarishga yordam berish uchun bepul Excel darsliklari va onlayn treninglarni taklif qiladi.