Trong VBA (Visual Basic for Applications), biến mảng (array) là một loại biến dùng để lưu trữ nhiều giá trị cùng một lúc.
Mảng cho phép bạn làm việc với một tập hợp dữ liệu có cùng kiểu dữ liệu (ví dụ: các số nguyên, chuỗi, v.v.) trong một biến duy nhất. Bạn có thể truy cập và thay đổi các giá trị trong mảng bằng cách sử dụng chỉ số (index).
Để khai báo một mảng trong VBA, bạn sử dụng cú pháp sau:
Dim mảng(Chỉ_số_bắt_đầu To Chỉ_số kết_thúc) As Kiểu dữ liệu
mảng: Tên của mảng (đặt dính liền nhau, không tiếng việt, không ký tự đặt biệt).
Chỉ số bắt đầu: Chỉ số bắt đầu của mảng (thường là 0 hoặc 1, tùy vào cấu hình).
Chỉ số kết thúc: Chỉ số cuối cùng của mảng.
Kiểu dữ liệu: Loại dữ liệu mà mảng chứa, ví dụ Integer, String, Double, v.v.
Ví dụ 1: Khai báo mảng đơn giản
Dim arr(1 To 5) As Integer
Trong ví dụ trên, mảng arr có 5 phần tử với chỉ số từ 1 đến 5, và mỗi phần tử sẽ chứa một giá trị kiểu Integer.
Khi mảng đã được khai báo, bạn có thể gán giá trị cho các phần tử của mảng bằng cách chỉ định chỉ số của phần tử.
arr(1) = 10
arr(2) = 20
arr(3) = 30
arr(4) = 40
arr(5) = 50
Để truy cập giá trị của một phần tử trong mảng, bạn sử dụng chỉ số của phần tử đó.
MsgBox arr(1) ' Hiển thị giá trị của phần tử đầu tiên trong mảng, tức là 10
Mảng trong VBA có thể là mảng động, nghĩa là bạn có thể thay đổi kích thước của mảng trong thời gian chạy (runtime).
Để khai báo mảng động, bạn không cần xác định kích thước khi khai báo, mà sử dụng câu lệnh ReDim để thay đổi kích thước mảng.
Dim arr() As Integer ' Khai báo mảng động
ReDim arr(1 To 5) ' Đặt kích thước mảng là 5 phần tử
Bạn có thể thay đổi kích thước mảng động sử dụng ReDim:
ReDim arr(1 To 10) ' Thay đổi kích thước mảng thành 10 phần tử
Lưu ý rằng khi thay đổi kích thước mảng bằng ReDim, tất cả các giá trị trong mảng sẽ bị mất. Nếu bạn muốn giữ lại các giá trị hiện tại trong mảng, bạn có thể sử dụng ReDim Preserve.
Ví dụ 2: Sử dụng ReDim Preserve:
Dim arr() As Integer
ReDim arr(1 To 5)
' Gán giá trị cho mảng
arr(1) = 10
arr(2) = 20
arr(3) = 30
arr(4) = 40
arr(5) = 50
ReDim Preserve arr(1 To 8)
arr(6) = 60
arr(7) = 70
arr(8) = 80
Mảng trong VBA cũng có thể có nhiều chiều, ví dụ mảng 2 chiều, mảng 3 chiều, v.v.
Cấu trúc khai báo mảng nhiều chiều:
Dim mảng(1 To 5, 1 To 3) As Integer ' Mảng 2 chiều với 5 hàng và 3 cột
Ví dụ 3: Mảng 2 chiều:
Dim arr(1 To 2, 1 To 3) As Integer
' Gán giá trị cho các phần tử trong mảng 2 chiều
arr(1, 1) = 10
arr(1, 2) = 20
arr(1, 3) = 30
arr(2, 1) = 40
arr(2, 2) = 50
arr(2, 3) = 60
' Truy cập giá trị của mảng 2 chiều
MsgBox arr(1, 2) ' Hiển thị giá trị 20
Mảng trong VBA là một công cụ mạnh mẽ để lưu trữ và làm việc với nhiều giá trị có cùng kiểu dữ liệu.
Bạn có thể khai báo mảng với kích thước cố định hoặc mảng động, cho phép thay đổi kích thước trong thời gian chạy.
Mảng có thể là mảng đơn (1 chiều) hoặc mảng đa chiều (2 chiều, 3 chiều, v.v.).
Đang cập nhật
Tìm kiếm:
Cách lập trình biến mảng(array) trong VBA