Mảng VBA trong Excel | Làm thế nào để làm việc với Hàm mảng trong VBA?
Trong VBA, mảng được sử dụng để xác định nhóm đối tượng với nhau, có chín hàm mảng khác nhau trong VBA và chúng là ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT và UBOUND, tất cả đều là những hàm có sẵn cho mảng trong VBA, hàm Array cho chúng ta giá trị của đối số đã cho.
Hàm mảng VBA trong Excel
Hàm mảng là một tập hợp các giá trị trong một biến duy nhất. Chúng ta có thể cung cấp một mảng cho một chương trình con trong vba, Functions và Properties. Mảng VBA là một trong những kỹ thuật thường được sử dụng để lưu trữ nhiều hơn một giá trị trong biến.
Ví dụ về hàm mảng VBA trong Excel
Thay vì khai báo nhiều biến và lưu trữ giá trị, chúng ta có thể sử dụng mảng VBA trong Excel để lưu trữ giá trị trong chính một biến duy nhất. Ví dụ, hãy xem ví dụ dưới đây
Bạn có thể tải xuống Mẫu VBA Array Excel này tại đây - Mẫu VBA Array Excel
Mã:
Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range ("A1"). Value = x Range ("A2"). Value = y End Sub
Trong ví dụ trên, tôi đã khai báo hai biến có tên là x & y. X giữ 1 là giá trị và Y giữ 2 là giá trị.
Bây giờ, hãy xem ví dụ về hàm mảng VBA trong Excel với một biến duy nhất.
Mã:
Sub Array_Ex () Dim x (1 đến 2) As Integer Range ("A1"). Value = x (1) Range ("A2"). Value = x (2) End Sub
Bây giờ nếu bạn chạy mã VBA này, chúng tôi sẽ có các giá trị trong ô A1 & A2.
Các biến mảng trả về kết quả là 0. Điều này là do chúng ta vừa khai báo các biến là hai nhưng chúng ta chưa gán bất kỳ giá trị nào cho các biến đó. Vì vậy chúng ta cần gán giá trị cho các biến này.
Mã:
Sub Array_Ex () Dim x (1 to 2) As Integer x (1) = 10 x (2) = 20 Range ("A1"). Value = x (1) Range ("A2"). Value = x (2 ) Kết thúc Sub
Bây giờ hãy chạy mã để nhận kết quả.
Trước khi nhập giá trị của các biến mảng vào ô, chúng ta cần gán giá trị cho các biến mảng đã khai báo đó giống như chúng ta đã gán các biến x (1) = 10 & x (2) = 20.
Ví dụ # 1 - Chèn số sê-ri bằng mảng tĩnh
Hãy xem ví dụ về việc sử dụng một mảng tĩnh để chèn số sê-ri. Cái này giống cái trước.
Mã:
Sub StaticArray_Ex () Dim x (1 đến 5) As Integer x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1"). Giá trị = x (1) Dải ("A2"). Giá trị = x (2) Dải ("A3"). Giá trị = x (3) Dải ("A4"). Giá trị = x (4) Dải ("A5" ) .Value = x (5) End Sub
Bây giờ chạy mã này để chèn số sê-ri.
Ví dụ # 2 - Chèn số sê-ri bằng mảng động
Bây giờ chúng ta sẽ thấy loại mảng thứ hai tức là mảng động
Mã:
Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1" ) .Value = x (1) Range ("A2"). Value = x (2) Range ("A3"). Value = x (3) Range ("A4"). Value = x (4) Range (" A5 "). Giá trị = x (5) End Sub
Bây giờ chạy mã này để nhận kết quả của số sê-ri. Chúng tôi nhận được kết quả tương tự như kết quả trước đó.
Nếu bạn nhận thấy rằng chúng tôi đã không cung cấp độ dài của mảng trong khi khai báo biến thay vào đó chúng tôi đã gán giá trị cuối cùng của mảng VBA bằng cách sử dụng hàm VBA Redim. Redim giữ giá trị cuối cùng của mảng được truyền.
Ví dụ # 3 - Tạo hàm Chèn tên tháng bằng mảng
Chúng ta đã thấy cách làm việc với các mảng trong VBA. Bây giờ chúng ta sẽ xem cách làm việc với một mảng để tạo một hàm VBA trong Excel. Hàm không là gì ngoài một hàm do người dùng định nghĩa trong VBA. Ngoài việc sử dụng các hàm có sẵn, VBA còn cho phép chúng ta tạo các hàm của riêng mình.
Mã:
Hàm List_Of_Months () List_Of_Months = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov "," Dec ") Chức năng Kết thúc
Đoạn mã dưới đây sẽ tạo một hàm có thể chèn tháng vào trang tính excel của chúng tôi.
Sao chép và dán mã dưới đây vào mô-đun của bạn.
Bây giờ hãy lưu mã này và đóng VBA Editor. Sau khi đóng trình soạn thảo VBA, hãy chuyển đến trang tính và nhập công thức chúng tôi vừa tạo và bạn sẽ thấy công thức có tên List_Of_Months trong trang tính của mình.
Mở công thức và nhấn enter. Chúng ta sẽ lấy tên của tháng đầu tiên tức là Jan
Nếu bạn vẫn chèn công thức thêm một lần nữa, chúng tôi sẽ chỉ nhận được tháng 1 chứ không phải tháng tiếp theo. Vì vậy, trước tiên hãy chọn 12 cột trong một hàng.
Bây giờ hãy mở công thức trong ô D1.
Vì chúng ta đã tạo công thức với mảng, nên chúng ta chỉ cần đóng các công thức dưới dạng công thức mảng. Vì vậy, hãy giữ Ctrl + Shift + Enter. Chúng tôi sẽ có tất cả các tên 12 tháng.
Những điều cần ghi nhớ
- Có hai kiểu mảng nữa có sẵn, tức là mảng hai chiều & mảng đa chiều.
- Mảng bắt đầu từ 0 chứ không phải từ 1. Số không có nghĩa là hàng đầu tiên và cột đầu tiên.
- Mảng là một chủ đề lớn mà bạn cần hiểu nó để chuyển sang cấp độ tiếp theo.
- Biến mảng sẽ là một biến chứa nhiều dữ liệu mỗi khi nó chuyển sang cấp độ tiếp theo.
- Redim được sử dụng để lưu trữ độ dài cuối cùng của mảng trong kiểu mảng động.