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

  1. 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.
  2. 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.
  3. 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,

Hoạt động
Dim kiểu dữ liệu arrayName(n)
  1. Nó khai báo một biến mảng có tên là arrayName với kích thước n và kiểu dữ liệu. Kích thước đề cập đến số lượng phần tử mà mảng có thể lưu trữ.

Mảng động

Cú pháp khai báo NĂNG ĐỘNG mảng như sau:

Dim arrayName() as datatype
ReDim arrayName(4)

ĐÂY,

Hoạt động
Dim kiểu dữ liệu arrayName()
  1. Nó khai báo một biến mảng được gọi là arrayName mà không chỉ định số lượng phần tử
ReDim tên mảng(4)
  1. Nó chỉ định kích thước mảng sau khi mảng được xác định.

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

  1. Mở Microsoft Excel
  2. 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

  1. Thêm nút lệnh vào trang tính

Sử dụng mảng trong Excel VBA

  1. Đặt thuộc tính tên thành cmdLoadBeverages
  2. Đặ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

Sử dụng mảng trong Excel VBA

Bước 3 – Lưu tệp

  1. Bấm vào nút lưu dưới dạng
  2. Chọn Sổ làm việc hỗ trợ macro Excel (*.xlsm) như trong hình bên dưới

Sử dụng mảng trong Excel VBA

Bước 4 – Viết mã

Bây giờ chúng ta sẽ viết mã cho ứng dụng của mình

  1. Nhấp chuột phải vào nút Tải đồ uống và chọn xem mã
  2. 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,

Hoạt động
Đồ uống Dim (1 đến 4) dưới dạng chuỗi
  • Nó khai báo một biến mảng có tên là Drinks. Chỉ số mảng đầu tiên là 1 và chỉ số mảng cuối cùng là 4.
Đồ uống(1) = “Pepsi”
  • Gán giá trị Pepsi cho phần tử mảng đầu tiên. Mã tương tự khác thực hiện tương tự cho các phần tử khác trong mảng.
Sheet1.Cells(1, 1).Value = “Đồ uống yêu thích của tôi.”
  • Viết giá trị Đồ uống yêu thích của tôi vào địa chỉ ô A1. Sheet1 tạo tham chiếu đến trang tính và Cells(1,1) tạo tham chiếu đến hàng số 1 và cột 1 (B)
Sheet1.Cells(2, 1).Value = Đồ uống(1)
  • Ghi giá trị của phần tử mảng có chỉ số 1 vào hàng số hai của cột 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)

Kiểm tra một ứng dụng trong Excel VBA

Nhấp vào nút Nạp đồ uống

Bạn sẽ nhận được kết quả sau

Kiểm tra một ứng dụng trong Excel VBA

Tải xuống Excel chứa mã ở trên

Tải xuống Mã Excel ở trên

Tổng kết

  1. Mảng là một biến có khả năng lưu trữ nhiều giá trị
  2. VBA Excel hỗ trợ mảng tĩnh và động
  3. 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.