ວິທີການ ReDim ຮັກສາ 2D Array ໃນ Excel VBA (2 ວິທີງ່າຍໆ)

  • ແບ່ງປັນນີ້
Hugh West

ອາເຣແມ່ນຕົວແປທີ່ເກັບຂໍ້ມູນປະເພດດຽວກັນ. ຖ້າມີພຽງແຕ່ຫນຶ່ງແຖວຫຼືຫນຶ່ງຄໍລໍາຂອງຂໍ້ມູນ, ຫຼັງຈາກນັ້ນມັນຖືກເອີ້ນວ່າ array ມິຕິຫນຶ່ງ. ຢ່າງໃດກໍຕາມ, ເມື່ອມີຫຼາຍກວ່າຫນຶ່ງແຖວແລະຖັນ, ມັນຖືກເອີ້ນວ່າອາເຣ 2D. ພວກເຮົາໃຊ້ ReDim ເພື່ອປັບຂະໜາດອາເຣໃນ VBA. ນອກຈາກນັ້ນ, ພວກເຮົາໃຊ້ຄໍາສໍາຄັນ ຮັກສາ ກັບ ReDim ເພື່ອຮັກສາຂໍ້ມູນເກົ່າໄວ້. ບົດຄວາມນີ້ຈະສະແດງໃຫ້ທ່ານເຫັນ 2 ວິທີໄວເພື່ອ “ ReDim Preserve ” a 2D array ໃນ Excel VBA .

ດາວໂຫລດ Practice Workbook

Macro to ReDim Preserve 2D.xlsm

2 Handy Approaches to ReDim Preserve 2D Array ໃນ Excel VBA

ນີ້ແມ່ນຊຸດຂໍ້ມູນພື້ນຖານທີ່ສ້າງຂຶ້ນຈາກ 2D array ທີ່ມີສາມແຖວ ແລະ 2 ຖັນ. ກ່ອນອື່ນ ໝົດ, ພວກເຮົາຈະສ້າງ array ນີ້. ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈະເພີ່ມຖັນອື່ນໃສ່ array ນີ້. ພວກເຮົາຈະໃຊ້ “ ReDim Preserve ” ເພື່ອເຮັດແນວນັ້ນ. ນອກຈາກນັ້ນ, ພວກເຮົາຈະສະແດງໃຫ້ເຫັນເຖິງສິ່ງທີ່ເກີດຂຶ້ນຖ້າພວກເຮົາບໍ່ໃຊ້ອັນນີ້.

ໂດຍຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາສາມາດປັບຂະໜາດໄດ້ພຽງແຕ່ຂະໜາດສຸດທ້າຍຂອງອາເຣ (ເຊັ່ນ: ຖັນ ຫຼື ຂອບເທິງ). ພວກເຮົາຈະແປ array, ຈາກນັ້ນປ່ຽນມິຕິສຸດທ້າຍ, ແລະຫຼັງຈາກນັ້ນ transpose ອີກຄັ້ງເພື່ອປັບຂະໜາດທັງສອງຂະໜາດຂອງ 2D array ໃນ Excel VBA.

1 . ReDim Preserve Last Dimension 2D Array

ທຳອິດພວກເຮົາຈະກຳນົດ 2D array ເປັນແບບໄດນາມິກ. ຈາກນັ້ນ, ໂດຍໃຊ້ຄຳຖະແຫຼງ ReDim , ພວກເຮົາຈະສ້າງarray ມີສາມແຖວແລະສອງຖັນ. ສຸດທ້າຍ, ພວກເຮົາຈະໃຊ້ຄໍາຖະແຫຼງການ ReDim ອີກຄັ້ງກັບ Sserve keyword ເພື່ອ ເພີ່ມຂອບເທິງຂອງອາເຣສອງມິຕິ.

ຂັ້ນຕອນ:

  • ເພື່ອເລີ່ມຕົ້ນ, ກົດ ALT+F11 ເພື່ອເປີດໜ້າຈໍ VBA Module . ອີກທາງເລືອກ, ທ່ານສາມາດເຮັດສິ່ງນີ້ໄດ້ຈາກແຖບ ຜູ້ພັດທະນາ →  ເລືອກ Visual Basic .
  • ຈາກນັ້ນ, ຈາກ ໃສ່ ແຖບ → ເລືອກ ໂມດູນ . ພວກເຮົາຈະພິມລະຫັດ VBA ຢູ່ທີ່ນີ້.

  • ຕໍ່ໄປ, ພິມລະຫັດຕໍ່ໄປນີ້ໃນ ໂມດູນ window.
4171

ການແບ່ງລະຫັດ VBA

  • ທຳອິດ, ພວກເຮົາໂທຫາ ຂັ້ນຕອນຍ່ອຍ Redim_Preserve_2D_Array_Row ”.
  • ຈາກນັ້ນ, ພວກເຮົາປະກາດຕົວແປ Our_Array ເປັນ dynamic array.
  • ຕໍ່ໄປ, ພວກເຮົາກໍານົດຂະຫນາດຂອງ array. ຂອບເຂດລຸ່ມແມ່ນ 3 , ຂອບເຂດເທິງແມ່ນ 2 , ແລະທັງສອງເລີ່ມຕົ້ນຈາກ 1 .
  • ຈາກນັ້ນ, ພວກເຮົາກໍານົດຄ່າໃຫ້ກັບ array. .
  • ຫຼັງ​ຈາກ​ນັ້ນ​, ພວກ​ເຮົາ​ເອົາ​ຄ່າ​ເຂົ້າ​ໄປ​ໃນ​ໄລ​ຍະ​ເຊ​ລ C6:D8 .
  • ຫຼັງ​ຈາກ​ນັ້ນ​, ພວກ​ເຮົາ ຈະດໍາເນີນການລະຫັດ.
  • ດັ່ງນັ້ນ, ບັນທຶກ the ໂມດູນ ແລະກົດ Run .

  • ດັ່ງ​ນັ້ນ​, ມັນ​ຈະ​ກັບ​ຄືນ​ຄ່າ​ກັບ​ໄລ​ຍະ​ເຊ​ລ​ທີ່​ກໍາ​ນົດ​ໄວ້​. ພວກເຮົາສາມາດເຫັນໄດ້ວ່າ “ Rachel ” ຢູ່ໃນແຖວ 1 ແລະຖັນ 1 ຕຳແໜ່ງ,ເຊິ່ງຖືກກໍານົດເປັນ ( 1,1 ) ໃນລະຫັດ VBA.

  • ຕອນນີ້, ພວກເຮົາຈະປັບຂະໜາດອາເຣ.
  • ດັ່ງນັ້ນ, ເພີ່ມອັນນີ້ໃສ່ລະຫັດກ່ອນໜ້ານີ້ ແລະເອົາ Range.Value statement ທຳອິດອອກ. ຍິ່ງໄປກວ່ານັ້ນ, ລະຫັດມີລັກສະນະເປັນແນວໃດທ່ານສາມາດເບິ່ງໄດ້ຈາກພາບຖ່າຍຂ້າງລຸ່ມນີ້.
1855

  • ທີ່ນີ້, ພວກເຮົາໄດ້ເພີ່ມຂອບເຂດເທິງຈາກ ( 1 ເຖິງ 2 ) ຫາ ( 1 ເຖິງ 3 ) ໂດຍ 1 .
  • ຈາກນັ້ນ, ພວກເຮົາໄດ້ເພີ່ມຄ່າໃສ່ array.
  • ດຽວນີ້ຖ້າພວກເຮົາປະຕິບັດລະຫັດນີ້, ພວກເຮົາຈະເຫັນວ່າຄ່າທີ່ຜ່ານມາບໍ່ໄດ້ຖືກຮັກສາໄວ້. ມັນຈະກັບຄືນມາຫວ່າງເປົ່າສຳລັບຄ່າກ່ອນໜ້າ. 1>ReDim statement .
  • ສຸດທ້າຍ, ລະຫັດເຕັມຂອງພວກເຮົາຈະເປັນອັນນີ້.
4790

  • ດຽວນີ້, ຖ້າພວກເຮົາ Run ລະຫັດນີ້, ຈາກນັ້ນຜົນໄດ້ຮັບຈະເປັນແບບນີ້. ດັ່ງນັ້ນ, ພວກເຮົາຈະ “ ReDim Preserve ” ມິຕິສຸດທ້າຍຂອງ 2D array ໃນ Excel VBA.. ຕອນນີ້, ວິທີການຕໍ່ໄປຈະສະແດງວິທີການ “ ReDim. ຮັກສາ ” ແລະປັບຂະໜາດທັງສອງຂະໜາດຂອງອາເຣ.

ອ່ານເພີ່ມເຕີມ: VBA ເພື່ອເຮັດໃຫ້ເປັນເອກະລັກ ຄ່າຈາກຖັນເຂົ້າໄປໃນ Array ໃນ Excel (3 ເງື່ອນໄຂ)

ການອ່ານທີ່ຄ້າຍຄືກັນ

  • ວິທີຕັ້ງຊື່ຕາຕະລາງ Array ໃນ Excel (ດ້ວຍ ຂັ້ນຕອນງ່າຍໆ)
  • Excel VBA ເພື່ອອ່ານໄຟລ໌ CSV ເປັນ Array (4 ຕົວຢ່າງທີ່ເໝາະສົມ)
  • ວິທີປ່ຽນ Range ເປັນ Array ໃນ ExcelVBA (3 ວິທີ)
  • Excel VBA: ເອົາການຊໍ້າກັນອອກຈາກ Array (2 ຕົວຢ່າງ)

2. ReDim ຮັກສາທັງສອງມິຕິ 2D Array ໃນ Excel VBA

ໃນ​ວິ​ທີ​ການ​ສຸດ​ທ້າຍ​ນີ້​, ພວກ​ເຮົາ​ຈະ​ສະ​ແດງ​ໃຫ້​ທ່ານ​ຂັ້ນ​ຕອນ​ການ​ປັບ​ຂະ​ຫນາດ​ແລະ “ ReDim Preserve ” the 2D array . ທີ່ນີ້, ພວກເຮົາຈະໃຊ້ຟັງຊັນ VBA Transpose ເພື່ອປັບຂະໜາດຂອບລຸ່ມຂອງອາເຣ. ຖ້າພວກເຮົາພະຍາຍາມປັບຂະຫນາດຂອບເຂດຕ່ໍາຂອງ array ໃນວິທີການທໍາອິດ, ພວກເຮົາຈະເຫັນຄວາມຜິດພາດ “ Subscript out of range ”. ດຽວນີ້, ໂດຍບໍ່ຕ້ອງເສຍໃຈອີກຕໍ່ໄປ, ໃຫ້ພວກເຮົາເບິ່ງວ່າພວກເຮົາສາມາດແກ້ໄຂອັນນີ້ໄດ້ແນວໃດ ແລະ ບັນລຸເປົ້າໝາຍຂອງພວກເຮົາ.

ຂັ້ນຕອນ:

  • ທຳອິດ, ດັ່ງທີ່ສະແດງໃນວິທີທຳອິດ , ໃຫ້ເປີດໜ້າຈໍ ໂມດູນ .
  • ອັນທີສອງ, ໃຫ້ເພີ່ມລະຫັດແຖວຕໍ່ໄປນີ້ໃສ່ໃນ ລະຫັດທໍາອິດ.
9247
  • ນອກຈາກນັ້ນ, ລະຫັດສໍາລັບວິທີການສຸດທ້າຍເບິ່ງຄືວ່ານີ້.
3820

ການແບ່ງລະຫັດ VBA

  • ທຳອິດ, ພວກເຮົາກຳລັງໂທຫາ ຂັ້ນຕອນຍ່ອຍ ReDim_Preserve_2D_Array_Both_Dimensions ” .
  • ຈາກນັ້ນ, ລະຫັດທີ່ເຫຼືອຂຶ້ນກັບຟັງຊັນ VBA Transpose ແມ່ນຄືກັນກັບໃນລະຫັດທຳອິດ.
  • ນີ້, ພວກເຮົາ. ກໍາລັງຖ່າຍທອດ array.
  • ຈາກນັ້ນ, ພວກເຮົາເພີ່ມຂອບເຂດເທິງຂອງ array.
  • ຫຼັງຈາກນັ້ນ, ພວກເຮົາ transpose array ອີກເທື່ອຫນຶ່ງ. ດັ່ງນັ້ນ, ໃນທີ່ສຸດມັນຈະປ່ຽນຂອບເຂດຕ່ໍາ.
  • ຕໍ່ໄປ, ພວກເຮົາໃສ່ຄ່າສໍາລັບ array ປັບຂະຫນາດໃນຂະນະທີ່.ຮັກສາຂໍ້ມູນເກົ່າໄວ້.
  • ສຸດທ້າຍ, ພວກເຮົາຂຽນຄ່າໃສ່ຊ່ວງຕາລາງ C6:E9 .
  • ຫຼັງຈາກ ວ່າ, ດັ່ງທີ່ສະແດງຢູ່ໃນວິທີທໍາອິດ , ແລ່ນ ລະຫັດນີ້.
  • ດັ່ງນັ້ນ, ພວກເຮົາສາມາດເບິ່ງເຫັນວິທີການຮັກສາລະຫັດ . 2D array ໂດຍໃຊ້ “ ReDim Preserve ” ແລະຟັງຊັນ VBA Transpose .

ອ່ານເພີ່ມເຕີມ: VBA ເພື່ອ Transpose Array ໃນ Excel (3 ວິທີ)

ສິ່ງທີ່ຄວນຈື່

  • ReDim Preserve ບໍ່ສາມາດປ່ຽນຂອບລຸ່ມຂອງອາເຣໄດ້. ເພື່ອເຮັດແນວນັ້ນ, ພວກເຮົາຈໍາເປັນຕ້ອງໃຊ້ຟັງຊັນ Transpose .
  • ພວກເຮົາສາມາດໃຊ້ ReDim ຢູ່ໃນ dynamic arrays ເທົ່ານັ້ນ.
  • <16

    ສະຫຼຸບ

    ພວກເຮົາໄດ້ສະແດງໃຫ້ທ່ານເຫັນສອງວິທີທີ່ໄວເພື່ອ “ ReDim Preserve ” a 2D array ໃນ Excel VBA. ຖ້າ​ຫາກ​ທ່ານ​ປະ​ເຊີນ​ກັບ​ບັນ​ຫາ​ໃດໆ​ກ່ຽວ​ກັບ​ວິ​ທີ​ການ​ເຫຼົ່າ​ນີ້​ຫຼື​ມີ​ຄໍາ​ຄຶດ​ຄໍາ​ເຫັນ​ໃດໆ​ສໍາ​ລັບ​ຂ້າ​ພະ​ເຈົ້າ​, ກະ​ລຸ​ນາ​ໃຫ້​ຄໍາ​ເຫັນ​ຂ້າງ​ລຸ່ມ​ນີ້​. ນອກຈາກນັ້ນ, ທ່ານສາມາດເຂົ້າເບິ່ງເວັບໄຊຂອງພວກເຮົາ ExcelWIKI ສໍາລັບບົດຄວາມທີ່ກ່ຽວຂ້ອງກັບ Excel ເພີ່ມເຕີມ. ຂອບໃຈສໍາລັບການອ່ານ, ສືບຕໍ່ດີເລີດ!

Hugh West ເປັນຄູຝຶກ Excel ທີ່ມີປະສົບການສູງແລະນັກວິເຄາະທີ່ມີປະສົບການຫຼາຍກວ່າ 10 ປີໃນອຸດສາຫະກໍາ. ລາວຈົບປະລິນຍາຕີສາຂາບັນຊີ ແລະການເງິນ ແລະປະລິນຍາໂທສາຂາບໍລິຫານທຸລະກິດ. Hugh ມີຄວາມກະຕືລືລົ້ນໃນການສອນແລະໄດ້ພັດທະນາວິທີການສອນທີ່ເປັນເອກະລັກທີ່ງ່າຍຕໍ່ການຕິດຕາມແລະເຂົ້າໃຈ. ຄວາມຮູ້ຊ່ຽວຊານຂອງລາວກ່ຽວກັບ Excel ໄດ້ຊ່ວຍໃຫ້ນັກຮຽນແລະຜູ້ຊ່ຽວຊານຫລາຍພັນຄົນໃນທົ່ວໂລກປັບປຸງທັກສະຂອງເຂົາເຈົ້າແລະດີເລີດໃນອາຊີບຂອງພວກເຂົາ. ຜ່ານ blog ຂອງລາວ, Hugh ແບ່ງປັນຄວາມຮູ້ຂອງລາວກັບໂລກ, ສະຫນອງການສອນ Excel ຟຣີແລະການຝຶກອົບຮົມອອນໄລນ໌ເພື່ອຊ່ວຍໃຫ້ບຸກຄົນແລະທຸລະກິດສາມາດບັນລຸທ່າແຮງຂອງພວກເຂົາ.