VBA Array là gì?
Một mảng được định nghĩa là một vị trí bộ nhớ có khả năng lưu trữ nhiều hơn một 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 để làm điều đó.
Bằng cách sử dụng một mảng, bạn có thể tham chiếu đến các giá trị có liên quan theo cùng một tên. Bạn có thể sử dụng một 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 VBA trong Excel. Chúng tiếp giáp với nhau 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 Microsoft Excel khác.
Trong hướng dẫn Lập trình VBA này, bạn sẽ học-
- Ưu điểm của mảng là gì?
- Các loại mảng trong VBA
- Cách sử dụng Mảng trong Excel VBA
- Kiểm tra ứng dụng của chúng tôi
Ưu điểm của mảng là gì?
Sau đây là một số lợi ích được cung cấp bởi hàm mảng VBA
- Nhóm dữ liệu 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 loại học sinh, chẳng hạn như vườn mẫu giáo, tiểu học, trung học, trung học, v.v.
- Mảng giúp bạn dễ dàng viết mã có thể bảo trì. Đối với cùng một dữ liệu 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 hơn một 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 cụ thể là;
- Tĩnh - Các loại mảng này có một số 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 rất 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 tuần, giới tính, v.v.
Ví dụ : Dim ArrayMonth (12) As String
- Động - Các loại mảng này không có số lượng phần tử được xác định trước cố định có thể được lưu trữ. Chúng 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 () As Variant
Cú pháp khai báo mảng
Mảng tĩnh
Cú pháp khai báo mảng STATIC như sau:
Dim arrayName (n) as datatype
ĐÂY,
Mã | Hoạt động |
Dim arrayName (n) kiểu dữ liệu |
|
Mảng động
Cú pháp khai báo mảng DYNAMIC như sau:
Dim arrayName() as datatypeReDim arrayName(4)
ĐÂY,
Mã | Hoạt động |
Dim arrayName () kiểu dữ liệu |
|
ReDim arrayName (4) |
|
Kích thước mảng
Một mảng có thể là một chiều, hai chiều hoặc nhiều chiều.
- Một thứ nguyên : Trong thứ nguyên 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 thứ nguyên : Trong thứ nguyên này, mảng sử dụng hai chỉ mục. Ví dụ, một số học sinh trong mỗi lớp. Nó yêu cầu số lớp và số học sinh trong mỗi lớp
- Đa thứ nguyên : Trong thứ nguyên 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 tôi sẽ tạo một ứng dụng đơn giản. Ứng dụng này điền vào một trang tính Excel với dữ liệu từ một biến mảng. Trong ví dụ VBA Array này, chúng ta sẽ thực hiện những việc sau.
- Tạo một sổ làm việc Microsoft Excel mới và lưu nó dưới dạng Excel Macro-Enabled Workbook (* .xlsm)
- Thêm nút lệnh vào sổ làm việc
- Đặt tên và thuộc tính chú thích của nút lệnh
- Lập trình VBA điền trang tính Excel
Hãy thực hiện bài tập này từng bước,
Bước 1 - Tạo sổ làm việc 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 quá trình tạo giao diện trong excel. Nếu bạn chưa quen, hãy đọc hướng dẫn VBA Excel Form Control & ActiveX Control. 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 name thành cmdLoadBe Average
- Đặt thuộc tính chú thích thành Đồ uống có tải
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 Excel Macro-Enabled Workbook (* .xlsm) như thể hiện trong hình ảnh bên dưới
Bước 4 - Viết mã
Bây giờ chúng tôi sẽ viết mã cho ứng dụng của chúng tôi
- Nhấp chuột phải vào nút Nạp đồ uống và chọn mã xem
- Thêm mã sau vào sự kiện nhấp chuột của cmdLoadBe Average
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(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) theo chuỗi |
|
Đồ uống (1) = "Pepsi" |
|
Sheet1.Cells (1, 1) .Value = "Đồ uống ưa 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ế "tắt". Chỉ báo là, nó sẽ có nền trắng chứ không phải nền có 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 có chứa mã trên
Tải xuống mã Excel ở trên
Tóm lược
- Mảng là một biến có khả năng lưu trữ nhiều hơn một giá trị
- Excel VBA hỗ trợ mảng tĩnh và mảng độ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.