Mảng VBA trong Excel: Là gì, cách sử dụng và các loại mảng trong VBA
Mảng VBA là gì?
Mảng được định nghĩa là một vị trí bộ nhớ có khả năng lưu trữ nhiều giá trị. Tất cả các giá trị phải có cùng kiểu dữ liệu. Giả sử bạn muốn lưu trữ danh sách đồ uống yêu thích của mình trong một biến duy nhất, bạn có thể sử dụng mảng VBA để thực hiện điều đó.
Bằng cách sử dụng mảng, bạn có thể tham khảo các giá trị liên quan có cùng tên. Bạn có thể sử dụng chỉ mục hoặc chỉ số dưới để phân biệt chúng. Các giá trị riêng lẻ được gọi là các phần tử của mảng Excel VBA. Chúng liền kề từ chỉ số 0 đến giá trị chỉ mục cao nhất.
Hướng dẫn này giả sử bạn đang sử dụng Microsoft Excel phiên bản 2013. Kiến thức vẫn áp dụng cho các phiên bản khác của Microsoft Excel cũng vậy.
Ưu điểm của mảng là gì?
Sau đây là một số lợi ích mà hàm mảng VBA mang lại
- Nhóm các dữ liệu có liên quan một cách hợp lý với nhau – giả sử bạn muốn lưu trữ danh sách sinh viên. Bạn có thể sử dụng một biến mảng duy nhất có các vị trí riêng biệt cho các danh mục học sinh, ví dụ như mẫu giáo, tiểu học, trung học cơ sở, trung học phổ thông, v.v.
- Mảng giúp dễ dàng viết mã có thể bảo trì. Đối với cùng một dữ liệu có liên quan về mặt logic, nó cho phép bạn xác định một biến duy nhất, thay vì xác định nhiều biến.
- Hiệu suất tốt hơn – khi một mảng đã được xác định, việc truy xuất, sắp xếp và sửa đổi dữ liệu sẽ nhanh hơn.
Các loại mảng trong VBA
VBA hỗ trợ hai loại mảng là;
- tĩnh – Các loại mảng này có số lượng phần tử được xác định trước cố định có thể được lưu trữ. Người ta không thể thay đổi kích thước kiểu dữ liệu của Mảng tĩnh. Những điều này hữu ích khi bạn muốn làm việc với các thực thể đã biết như số ngày trong một tuần, giới tính, v.v.Ví dụ: Dim ArrayMonth(12) Dưới dạng chuỗi
- Năng động – Các loại mảng này không có số lượng phần tử cố định được xác định trước để có thể lưu trữ. Những điều này rất hữu ích khi làm việc với các thực thể mà bạn không thể xác định trước số lượng.Ví dụ: Dim ArrayMonth() Là biến thể
Cú pháp khai báo mảng
Mảng tĩnh
Cú pháp khai báo THỐNG KÊ mảng như sau:
Dim arrayName (n) as datatype
ĐÂY,
Mã | Hoạt động |
---|---|
Dim kiểu dữ liệu arrayName(n) |
|
Mảng động
Cú pháp khai báo NĂNG ĐỘNG mảng như sau:
Dim arrayName() as datatype ReDim arrayName(4)
ĐÂY,
Mã | Hoạt động |
---|---|
Dim kiểu dữ liệu arrayName() |
|
ReDim tên mảng(4) |
|
Kích thước mảng
Mảng có thể là một chiều, hai chiều hoặc nhiều chiều.
- Một chiều: Trong chiều này, mảng chỉ sử dụng một chỉ mục. Ví dụ, một số người ở mỗi độ tuổi.
- Hai kích thước: Trong chiều này, mảng sử dụng hai chỉ mục. Ví dụ: số học sinh mỗi lớp. Nó yêu cầu số lớp và số học sinh trong mỗi lớp
- Đa chiều: Trong chiều này, mảng sử dụng nhiều hơn hai chỉ mục. Ví dụ, nhiệt độ vào ban ngày. ( 30, 40, 20).
Cách sử dụng mảng trong Excel VBA
Chúng ta sẽ tạo một ứng dụng đơn giản. Ứng dụng này điền dữ liệu từ một biến mảng vào một trang tính Excel. Trong ví dụ về Mảng VBA này, chúng ta sẽ thực hiện những việc sau.
- Tạo một cái mới Microsoft Sổ làm việc Excel và lưu dưới dạng Sổ làm việc hỗ trợ macro Excel (*.xlsm)
- Thêm nút lệnh vào sổ làm việc
- Đặt thuộc tính tên và chú thích của nút lệnh
- Lập trình VBA điền bảng Excel
Hãy thực hiện bài tập này từng bước một,
Bước 1 – Tạo một bảng tính mới
- Mở Microsoft Excel
- Lưu sổ làm việc mới dưới dạng VBA Arrays.xlsm
Bước 2 – Thêm nút lệnh
Lưu ý: Phần này giả sử bạn đã quen với quy trình tạo giao diện trong excel. Nếu bạn chưa quen, hãy đọc hướng dẫn Kiểm soát biểu mẫu VBA Excel & Kiểm soát ActiveX. Nó sẽ hướng dẫn bạn cách tạo giao diện
- Thêm nút lệnh vào trang tính
- Đặt thuộc tính tên thành cmdLoadBeverages
- Đặt thuộc tính chú thích thành Tải đồ uống
GUI của bạn bây giờ sẽ như sau
Bước 3 – Lưu tệp
- Bấm vào nút lưu dưới dạng
- Chọn Sổ làm việc hỗ trợ macro Excel (*.xlsm) như trong hình bên dưới
Bước 4 – Viết mã
Bây giờ chúng ta sẽ viết mã cho ứng dụng của mình
- Nhấp chuột phải vào nút Tải đồ uống và chọn xem mã
- Thêm mã sau vào sự kiện nhấp chuột của cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
ĐÂY,
Mã | Hoạt động |
---|---|
Đồ uống Dim (1 đến 4) dưới dạng chuỗi |
|
Đồ uống(1) = “Pepsi” |
|
Sheet1.Cells(1, 1).Value = “Đồ uống yêu thích của tôi.” |
|
Sheet1.Cells(2, 1).Value = Đồ uống(1) |
|
Kiểm tra ứng dụng của chúng tôi
Chọn tab nhà phát triển và đảm bảo rằng nút Chế độ thiết kế ở chế độ “tắt”. Dấu hiệu là nó sẽ có nền trắng chứ không phải nền màu (xanh lục). (Xem hình ảnh bên dưới)
Nhấp vào nút Nạp đồ uống
Bạn sẽ nhận được kết quả sau
Tải xuống Excel chứa mã ở trên
Tổng kết
- Mảng là một biến có khả năng lưu trữ nhiều giá trị
- VBA Excel hỗ trợ mảng tĩnh và động
- Mảng giúp bạn dễ dàng viết mã có thể bảo trì so với việc khai báo nhiều biến cho dữ liệu có liên quan về mặt logic.