วิธี ReDim รักษา 2D Array ใน Excel VBA (2 วิธีง่ายๆ)

  • แบ่งปันสิ่งนี้
Hugh West

อาร์เรย์คือตัวแปรที่เก็บข้อมูลประเภทเดียวกัน ถ้ามีข้อมูลเพียงหนึ่งแถวหรือหนึ่งคอลัมน์ ก็จะเรียกว่าอาร์เรย์หนึ่งมิติ อย่างไรก็ตาม เมื่อมีแถวและคอลัมน์มากกว่าหนึ่งแถว จะเรียกว่าอาร์เรย์ 2 มิติ เราใช้ ReDim เพื่อปรับขนาดอาร์เรย์ใน VBA นอกจากนี้ เราใช้คีย์เวิร์ด รักษา ร่วมกับ ReDim เพื่อให้ข้อมูลเก่ายังคงอยู่ บทความนี้จะแสดง 2 วิธีที่รวดเร็วในการ “ ReDim Preserve อาร์เรย์ 2 มิติ ใน Excel VBA .

ดาวน์โหลดคู่มือฝึกปฏิบัติ

มาโครเพื่อ ReDim รักษา 2D.xlsm

2 แนวทางที่มีประโยชน์ ReDim รักษาอาร์เรย์ 2 มิติใน Excel VBA

นี่คือชุดข้อมูลพื้นฐานที่สร้างจาก อาร์เรย์ 2 มิติ ที่มีสามแถวและสองคอลัมน์ ก่อนอื่นเราจะสร้างอาร์เรย์นี้ จากนั้นเราจะเพิ่มคอลัมน์อื่นในอาร์เรย์นี้ เราจะใช้ “ ReDim Preserve ” เพื่อดำเนินการดังกล่าว นอกจากนี้ เราจะสาธิตว่าจะเกิดอะไรขึ้นหากเราไม่ใช้สิ่งนี้

ตามค่าเริ่มต้น เราจะปรับขนาดได้เฉพาะมิติสุดท้ายของอาร์เรย์ (เช่น คอลัมน์หรือขอบเขตบน) เราจะย้ายอาร์เรย์ จากนั้นเปลี่ยนมิติสุดท้าย จากนั้นย้ายอีกครั้งเพื่อปรับขนาดทั้งสองมิติของ อาร์เรย์ 2 มิติ ใน Excel VBA

1 ReDim รักษาอาร์เรย์ 2D มิติสุดท้าย

ก่อนอื่นเราจะกำหนด อาร์เรย์ 2D เป็นไดนามิก จากนั้นใช้คำสั่ง ReDim เราจะสร้างอาร์เรย์ที่มีสามแถวและสองคอลัมน์ สุดท้าย เราจะใช้คำสั่ง ReDim อีกครั้งกับ รักษา คีย์เวิร์ด เพื่อ เพิ่มขอบเขตบนของอาร์เรย์สองมิติ

ขั้นตอน:

  • เริ่มต้นด้วยการกด ALT+F11 เพื่อเปิดหน้าต่าง VBA Module หรือคุณสามารถทำได้จากแท็บ นักพัฒนาซอฟต์แวร์ →  เลือก Visual Basic
  • จากนั้น จาก แทรก แท็บ → เลือก โมดูล เราจะพิมพ์โค้ด VBA ที่นี่

  • ถัดไป พิมพ์โค้ดต่อไปนี้ใน โมดูล window.
3403

การแบ่งโค้ด VBA

  • ประการแรก เรากำลังเรียก ขั้นตอนย่อย Redim_Preserve_2D_Array_Row ”.
  • จากนั้น เราจะประกาศตัวแปร Our_Array เป็นอาร์เรย์แบบไดนามิก
  • ต่อไป เราจะกำหนดขนาดของอาร์เรย์ ขอบเขตล่างคือ 3 ขอบเขตบนคือ 2 และทั้งคู่เริ่มต้นจาก 1 .
  • จากนั้น เรากำหนดค่าให้กับอาร์เรย์ .
  • หลังจากนั้น เราป้อนค่าในช่วงเซลล์ C6:D8
  • หลังจากนั้น เรา จะดำเนินการโค้ด
  • ดังนั้น บันทึก โมดูล แล้วกด เรียกใช้ .

  • ด้วยเหตุนี้ ค่าจะส่งกลับค่าไปยังช่วงเซลล์ที่กำหนดไว้ เราจะเห็นว่า “ Rachel ” อยู่ในแถว 1 และคอลัมน์ 1 ตำแหน่งซึ่งถูกกำหนดเป็น ( 1,1 ) ในโค้ด VBA

  • ตอนนี้ เราจะปรับขนาดอาร์เรย์
  • ดังนั้น เพิ่มสิ่งนี้ในโค้ดก่อนหน้า และลบ คำสั่ง Range.Value แรก ยิ่งไปกว่านั้น คุณสามารถดูโค้ดได้จากภาพรวมด้านล่าง
2338

  • ที่นี่ เราได้เพิ่มขอบเขตบนจาก ( 1 ถึง 2 ) ถึง ( 1 ถึง 3 ) โดย 1 .
  • จากนั้นเราได้เพิ่มค่าลงในอาร์เรย์
  • ตอนนี้หากเรารันโค้ดนี้ เราจะพบว่าค่าก่อนหน้านี้ไม่ถูกรักษาไว้ มันจะคืนค่าว่างสำหรับค่าก่อนหน้า

  • ตอนนี้ เราสามารถแก้ไขปัญหานี้ได้โดยเพิ่ม รักษาคำหลัก ลงใน คำสั่ง ReDim .
  • สุดท้าย โค้ดเต็มของเราจะเป็นแบบนี้
3184

  • ตอนนี้ ถ้าเรา รัน โค้ดนี้ ผลลัพธ์จะเป็นแบบนี้ ดังนั้น เราจะ “ ReDim Preserve ” มิติสุดท้ายของ อาร์เรย์ 2 มิติ ใน Excel VBA.. ตอนนี้ วิธีถัดไปจะแสดงวิธีการ “ ReDim รักษา ” และปรับขนาดทั้งสองมิติของอาร์เรย์

อ่านเพิ่มเติม: VBA เพื่อรับเอกลักษณ์ ค่าจากคอลัมน์เข้าสู่อาร์เรย์ใน Excel (3 เกณฑ์)

การอ่านที่คล้ายกัน

  • วิธีตั้งชื่ออาร์เรย์ตารางใน Excel (ด้วย ขั้นตอนง่ายๆ)
  • Excel VBA เพื่ออ่านไฟล์ CSV เป็นอาร์เรย์ (4 ตัวอย่างในอุดมคติ)
  • วิธีแปลงช่วงเป็นอาร์เรย์ใน ExcelVBA (3 วิธี)
  • Excel VBA: ลบรายการที่ซ้ำกันออกจากอาร์เรย์ (2 ตัวอย่าง)

2. ReDim รักษาอาร์เรย์ 2D ทั้งสองมิติใน Excel VBA

ในวิธีสุดท้ายนี้ เราจะแสดงขั้นตอนการปรับขนาดและ “ ReDim Preserve ” the 2D array ที่นี่ เราจะใช้ฟังก์ชัน VBA Transpose เพื่อปรับขนาดขอบเขตล่างของอาร์เรย์ หากเราพยายามปรับขนาดขอบเขตล่างของอาร์เรย์ในวิธีแรก เราจะเห็นข้อผิดพลาด “ ตัวห้อยอยู่นอกช่วง ” เพื่อไม่ให้เป็นการเสียเวลา เรามาดูกันว่าเราจะแก้ไขปัญหานี้และบรรลุเป้าหมายได้อย่างไร

ขั้นตอน:

  • ประการแรก ตามที่แสดงในวิธีแรก ให้เปิดหน้าต่าง โมดูล ขึ้นมา
  • ประการที่สอง เพิ่มบรรทัดโค้ดต่อไปนี้ลงใน โค้ดแรก
2623
  • ยิ่งไปกว่านั้น โค้ดสำหรับเมธอดสุดท้ายมีลักษณะดังนี้
2471

การแบ่งโค้ด VBA

  • ประการแรก เราเรียก ขั้นตอนย่อย ReDim_Preserve_2D_Array_Both_Dimensions ” .
  • จากนั้น โค้ดที่เหลือไปจนถึงฟังก์ชัน VBA Transpose จะเหมือนกับในโค้ดแรก
  • ที่นี่ เรา กำลังย้ายอาร์เรย์
  • จากนั้น เราจะเพิ่มขอบเขตบนของอาร์เรย์
  • หลังจากนั้น เราจะย้ายอาร์เรย์อีกครั้ง ดังนั้น ในที่สุดมันก็จะเปลี่ยนขอบเขตล่าง
  • ต่อไป เราป้อนค่าสำหรับอาร์เรย์ที่ปรับขนาดในขณะที่รักษาข้อมูลเก่า
  • สุดท้าย เราเขียนค่าลงในช่วงเซลล์ C6:E9 .
  • หลังจาก ที่ ตามที่แสดงในวิธีแรก เรียกใช้ โค้ดนี้
  • ดังนั้นเราจึงสามารถเห็นภาพได้ว่าโค้ดรักษา ไว้อย่างไร อาร์เรย์ 2 มิติ โดยใช้ฟังก์ชัน “ ReDim Preserve ” และฟังก์ชัน VBA Transpose

อ่านเพิ่มเติม: VBA to Transpose Array ใน Excel (3 วิธี)

สิ่งที่ควรจำ

  • ReDim Preserve ไม่สามารถเปลี่ยนขอบล่างของอาร์เรย์ได้ ในการทำเช่นนั้น เราต้องใช้ฟังก์ชัน Transpose
  • เราสามารถใช้ ReDim บนไดนามิกอาร์เรย์เท่านั้น

สรุป

เราได้แสดงวิธีง่ายๆ สองวิธีในการ “ ReDim Preserve ” a 2D อาร์เรย์ ใน Excel VBA หากคุณประสบปัญหาใด ๆ เกี่ยวกับวิธีการเหล่านี้หรือมีข้อเสนอแนะใด ๆ สำหรับฉัน โปรดอย่าลังเลที่จะแสดงความคิดเห็นด้านล่าง นอกจากนี้ คุณสามารถเยี่ยมชมเว็บไซต์ของเรา ExcelWIKI เพื่อดูบทความเกี่ยวกับ Excel เพิ่มเติม ขอบคุณที่อ่าน เก่งขึ้นเรื่อยๆ!

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง