NTM Solutions

Thứ Hai, 26 tháng 2, 2018

VBA Macro - Bài 12 - Mảng


Quay về mục lục VBA Macro


1.    Mảng 01 chiều
Ví dụ:
Dim sinhvien(1 To 5) As String
sinhvien(1) = "Tí"
sinhvien(2) = "Tèo"
sinhvien(3) = "Tô"
sinhvien(4) = "Tun"
sinhvien(5) = "Tôp"
MsgBox "Xin chào " & sinhvien(4)
Ví dụ trên khai báo mảng sinh viên có 05 phần tử và lần lượt gán giá trị từng phần tử.Cuối cùng xuất ra màn hình phần tử thứ 4.
2.       Mảng 02 chiều
Dim sinhvien(1 To 5, 1 To 2) As String
Dim i, j As Integer
For i = 1 To 5
    For j = 1 To 2
        sinhvien(i, j) = Cells(i, j).Value
    Next j
Next i
MsgBox "Xin chào " & sinhvien(4, 1) & " hoc lop: " & sinhvien(4, 2)


Ví dụ trên tạo ra mảng 02 chiều sinhvien(5 dòng,2 cột)
Lần lượt lấy các giá trị A1:B5 gán vào phần tử mảng=> xuất ra màn hình phần tử (4,1) và (4,2)
3.Dùng hàm Array()
Đối với mảng chứa dữ liệu bất kỳ ta dùng hàm Array()
Ví dụ:
Dim sinhvien
sinhvien = Array("Tèo", 2, "Tô", "Tun", "Tôp")
Dim i As Integer
For i = 0 To 4
    MsgBox "Xin chào " & sinhvien(i)
Next i
Giá trị cuả mảng bắt đầu từ 0 (cái này có thể đổi được)
3.       Khai báo lại số phần tử mảng bằng Redim
Dim sinhvien
sinhvien = Array("Tèo", 2, "Tô", "Tun", "Tôp")
Dim i As Integer
For i = 0 To 4
    MsgBox "Xin chào " & sinhvien(i)
Next i
ReDim sinhvien(2)
For i = 0 To 1
    sinhvien(i) = i
Next i
MsgBox sinhvien(1)
Chú ý: khi dùng Redim=> giá trị các phần tử sẽ bị xóa sạch.(muốn giữ lại giá trị thì dùng: Redim  

Preserve tenmang(15)
 
4.       Xác định chỉ số phần tử nhỏ nhất – lớn nhất
Lbound(tenmang)
Ubound(tenmang)
Nếu vẫn chưa hiểu các bạn xem trong video clip: