Mảng đa chiều VBA (Mảng 2D)

Hướng dẫn này sẽ thảo luận về mảng 2 chiều và đa chiều trong VBA.

Mảng đa chiều (Mảng 2D)

Mảng nhiều chiều là mảng chứa nhiều hơn một chiều, thường là hai hoặc ba chiều, nhưng mảng có thể có tối đa 32 chiều.

Khai báo một mảng 2D

Để tạo một mảng có nhiều thứ nguyên, hãy sử dụng dấu phẩy để xác định từng thứ nguyên riêng biệt:

1 Dim intArr (2,3) dưới dạng Số nguyên

Đưa vào một mảng 2D

Đoạn mã dưới đây sẽ điền vào một mảng 2D, sau đó điền các hàng và cột của trang tính với các giá trị trong mảng.

1234567891011121314151617181920212223242526 Sub Populate2D ()'khai báo mảng 2DDim intA (2, 3) Dưới dạng số nguyên'khai báo các biếnDim rw As IntegerDim col As Integer'điền vào mảngintA (0, 0) = 45intA (0, 1) = 50intA (0, 2) = 55intA (0, 3) = 60intA (1, 0) = 65intA (1, 1) = 70intA (1, 2) = 75intA (1, 3) = 80intA (2, 0) = 85intA (2, 1) = 90intA (2, 2) = 95intA (2, 3) = 100'lặp qua mảng và điền vào ExcelĐối với rw = 0 đến 2Đối với col = 0 đến 3Các ô (rw + 1, col + 1) .Value = intA (rw, col)Col tiếp theoRw tiếp theoKết thúc Sub

Sau đó, bảng tính Excel của bạn sẽ được điền như sau.

Nhập Mảng 2D từ dữ liệu Excel

Đoạn mã dưới đây sẽ điền một mảng 2D từ trang tính Excel và sau đó điền dữ liệu vào một trang tính khác.

1234567891011121314151617181920212223242526 Sub Populate2D ()'Khai báo các trang tínhDim ws_Source As WorksheetDim ws_Destination As Worksheet'Khai báo mảngDim wsData (10, 2) As Variant'Khai báo các biếnDim rw dưới dạng Số nguyênDim col As Integer'tham khảo trang nguồnĐặt ws_Source = Worksheets ("Sheet1")'lấy thông tin từ trang tính nguồn và điền vào mảngĐối với rw = LBound (wsData, 1) Đến UBound (wsData, 1)Đối với col = LBound (wsData, 2) Đến UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Phần bù (rw, col) .ValueCol tiếp theoRw tiếp theo'tham khảo trang đíchĐặt ws_Destination = Worksheets ("Sheet2")'điền trang đích từ mảngĐối với rw = LBound (wsData, 1) Đến UBound (wsData, 1)Đối với col = LBound (wsData, 2) Đến UBound (wsData, 2)ws_Destination.Range ("A1"). Offset (rw, col) .Value = wsData (rw, col)Col tiếp theoRw tiếp theoKết thúc Sub

Thay đổi kích thước bằng cách sử dụng ReDim và Re-Dim Preserve

Bạn có thể thay đổi kích thước một mảng bằng cách sử dụng ReDim.

1234567891011121314151617 Thay đổi kích thước phụ2D ()'khai báo mảngDim varArray () dưới dạng Biến thể'khai báo kích thước của mảngReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Kế toán"varArray (1, 1) = "Thư ký"varArray (1, 2) = "Bác sĩ"'khai báo lại kích thước của mảngReDim varArray (0, 1)'tái tạo lại mảngvarArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"Kết thúc Sub

Khi bạn khai báo lại mảng, bạn sẽ mất bất kỳ dữ liệu nào đã được giữ trước đó trong mảng trừ khi bạn sử dụng Tuyên bố Bảo tồn ReDim.

12345678910111213141516 Thay đổi kích thước phụ2D ()'khai báo mảng Dim varArray () là Biến thể'khai báo kích thước của mảngReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Kế toán"varArray (1, 1) = "Thư ký"varArray (1, 2) = "Bác sĩ"'khai báo lại kích thước của mảngReDim Preverve varArray (1, 3)'điền vào mảng với các giá trị bổ sungvarArray (0, 3) = "Rob Barnes"varArray (1, 3) = "Thợ sửa ống nước"Kết thúc Sub

Bạn chỉ có thể thay đổi kích thước kích thước cuối cùng của Mảng nếu muốn giữ dữ liệu gốc trong Mảng với Re-Dim Preserve.

Khi bạn nhấp vào gỡ lỗi, lỗi sẽ được đánh dấu cho thấy rằng kích thước đầu tiên trong mảng không giống với kích thước đầu tiên khi kích thước mảng được khai báo ban đầu.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave