/ / อาร์เรย์แบบไดนามิกใน Excel VBA

อาร์เรย์แบบไดนามิกใน Excel VBA

ถ้าขนาดของอาร์เรย์เพิ่มขึ้นและคุณไม่ต้องการกำหนดขนาดของอาร์เรย์คุณสามารถใช้ คำหลัก ReDim. Excel VBA แล้วเปลี่ยนขนาดของอาร์เรย์โดยอัตโนมัติ

เพิ่มตัวเลขลงในคอลัมน์ A

อาร์เรย์แบบไดนามิกใน Excel VBA

วางปุ่มคำสั่งในแผ่นงานของคุณและเพิ่มบรรทัดรหัสต่อไปนี้:

1. ขั้นแรกเราจะประกาศหมายเลขอาเรย์ที่มีชื่อ ยังประกาศตัวแปรสองประเภท Integer หนึ่งชื่อขนาดและหนึ่งชื่อ i.

Dim numbers() As Integer, size As Integer, i As Integer

หมายเหตุ: อาร์เรย์ยังไม่มีขนาด หมายเลขขนาดและฉันถูกสุ่มเลือกที่นี่คุณสามารถใช้ชื่อใดก็ได้ โปรดอย่าลืมดูชื่อเหล่านี้ในส่วนที่เหลือของรหัสของคุณ

2. ต่อไปเราจะกำหนดขนาดของอาร์เรย์และเก็บไว้ในขนาดตัวแปร คุณสามารถใช้ฟังก์ชันแผ่นงาน CountA สำหรับข้อมูลนี้ได้ เพิ่มบรรทัดรหัสต่อไปนี้:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. ตอนนี้เรารู้ขนาดของอาร์เรย์แล้วเราสามารถ redimension ได้ เพิ่มบรรทัดรหัสต่อไปนี้:

ReDim numbers(size)

4. จากนั้นเราจะเริ่มต้นแต่ละส่วนของอาร์เรย์ เราใช้วงแหวน

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. เราจะแสดงองค์ประกอบสุดท้ายของอาร์เรย์โดยใช้ MsgBox

MsgBox numbers(size)

6. ออกจาก Visual Basic Editor และคลิกปุ่มคำสั่งบนแผ่นงาน

ผล:

องค์ประกอบสุดท้ายของอาร์เรย์

7. ตอนนี้ให้เห็นชัดเจนว่าเหตุใดจึงเรียกว่าอาร์เรย์แบบไดนามิกให้เพิ่มตัวเลขลงในคอลัมน์ A

เพิ่มหมายเลข

8. คลิกปุ่มคำสั่งอีกครั้ง

ผลลัพธ์อาร์เรย์แบบไดนามิก

สรุป: Excel VBA ได้เปลี่ยนขนาดของอาร์เรย์แบบไดนามิกนี้โดยอัตโนมัติ

9. เมื่อคุณใช้คำหลัก ReDim คุณจะลบข้อมูลที่มีอยู่ใด ๆ ที่เก็บอยู่ในอาร์เรย์ ตัวอย่างเช่นเพิ่มโค้ดต่อไปนี้ลงในโค้ดที่สร้างขึ้นก่อนหน้านี้:

ReDim numbers(3)
MsgBox numbers(1)

ผล:

ไม่มีการเก็บรักษา

อาร์เรย์ว่างเปล่า

10. เมื่อคุณต้องการเก็บรักษาข้อมูลในอาร์เรย์ที่มีอยู่เมื่อคุณใช้ redimension ให้ใช้คำหลัก Preserve

ReDim Preserve numbers(3)
MsgBox numbers(1)

ผล:

กับ Preserve

อ่านเพิ่มเติมได้ที่: