VBA Khai báo mảng | Làm thế nào để khai báo mảng trong VBA?

Mảng khai báo VBA trong Excel

Khai báo mảng trong VBA rất giống với khai báo biến, nó được thực hiện bởi cùng một câu lệnh dim hoặc câu lệnh công cộng hoặc riêng tư tĩnh, điểm khác biệt duy nhất trong việc khai báo một mảng và khai báo một biến là trong khi khai báo một mảng, chúng ta phải cung cấp một kích thước của một mảng là giới hạn trên của mảng và giới hạn dưới của mảng.

Trong VBA Code, chúng ta có thể khai báo một mảng biến đơn có thể chứa số lượng biến thay vì khai báo các biến đơn lẻ. Điều này có thể giúp giảm số dòng trong mã.

Mảng là một loại biến có thể chứa nhiều hơn một giá trị, không giống như các biến thông thường chỉ có thể chứa một giá trị tại một thời điểm. Mảng là phiên bản nâng cao của việc khai báo các biến trong VBA. Ví dụ, hãy tưởng tượng một tình huống bạn muốn gán tên 5 học sinh cho các biến và trong thực tế chung, chúng ta khai báo năm biến cho tất cả năm biến chúng ta gán tên từng học sinh một, dưới đây là mã ví dụ tương tự.

Mã:

 Mảng con_Example () Dim Student1 Như chuỗi Dim Student2 Như chuỗi Dim Student3 Như chuỗi Dim Student4 Như chuỗi Dim Student5 Như chuỗi kết thúc Sub 

Thay vì khai báo quá nhiều biến, làm thế nào về ý tưởng khai báo một mảng biến duy nhất có thể chứa tất cả các tên sinh viên.

Có, điều này có thể thực hiện được bằng cách khai báo mảng trong VBA.

Các ví dụ

Bạn có thể tải xuống Mẫu VBA Khai báo Mảng Excel này tại đây - Mẫu VBA Khai báo Mảng Excel

Ví dụ 1

Để khai báo, chúng ta không cần thực hiện bất kỳ mã VBA đặc biệt nào thay vào đó chúng ta cần tuân theo các khái niệm đơn giản.

Đầu tiên, bắt đầu quy trình con.

Mã:

 Sub Array_Example () End Sub 

Bây giờ, như thường lệ, hãy khai báo một biến dưới dạng một chuỗi.

Mã:

 Sub Array_Example () Dim Student as String End Sub 

Sau khi biến được khai báo, hãy đảm bảo rằng nó sẽ chứa bao nhiêu giá trị. Trong trường hợp này, tôi muốn lưu trữ năm tên học sinh, vì vậy bây giờ chúng ta cần sửa kích thước mảng, tức là từ 1 đến 5. Cung cấp điều tương tự cho biến trong dấu ngoặc.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Là chuỗi kết thúc Sub 

Bây giờ đối với biến đơn này, chúng ta có thể lưu trữ 5 tên sinh viên.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Anderson" End Sub 

Hãy xem chúng ta đã giảm được bao nhiêu dòng bằng cách khai báo biến dưới dạng một mảng. Đây là một cách làm mà chúng ta vẫn có thể rút ngắn mã này bằng cách đặt mã này bên trong các vòng lặp trong VBA.

Bây giờ là một ví dụ, năm tên giống nhau mà tôi có trong các ô trang tính.3

Bây giờ tôi muốn hiển thị những con số này trong hộp thông báo trong VBA, ok, hãy khai báo thêm một biến nữa cho các vòng lặp là kiểu dữ liệu Integer.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Như chuỗi Dim K As Integer End Sub 

Như thường lệ, tôi đã giữ lại biến mảng ở kích thước từ 1 đến 5.

Bây giờ, hãy mở vòng lặp FOR NEXT trong VBA và vì chúng ta có năm tên nên hãy nhập giới hạn là 1 đến 5.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Như chuỗi Dim K làm số nguyên Cho K = 1 đến 5 Tiếp theo K End Sub 

Để gán giá trị cho biến mảng, chúng ta không cần thực hiện theo cách trước đây để hiển thị Student (1), Student (2) như thế này đối với các số vị trí cung cấp biến vòng lặp “k”.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Như chuỗi Dim K làm số nguyên Cho K = 1 đến 5 Student (K) = Next K End Sub 

Đối với biến mảng này, chúng ta cần các giá trị từ trang tính, do đó, sử dụng thuộc tính CELLS để lấy các giá trị từ trang tính.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Như chuỗi Dim K làm số nguyên Cho K = 1 đến 5 Student (K) = Cells (K, 1). Giá trị Tiếp theo K End Sub 

Bây giờ thông qua hộp thông báo hiển thị giá trị của biến mảng.

Mã:

 Mảng con_Ví dụ () Dim Student (1 đến 5) Như chuỗi Dim K làm số nguyên Cho K = 1 đến 5 Student (K) = Cells (K, 1). Giá trị MsgBox Student (K) Next K End Sub 

Bây giờ chạy mã, trong hộp thông báo, chúng ta sẽ thấy tên đầu tiên. Một lần nữa nhấn Ok để xem tên thứ hai. Như thế này bằng cách nhấn Ok, chúng ta có thể thấy tất cả năm tên.

Ví dụ # 2 - Hai Mảng Thứ nguyên

Chúng ta đã thấy ở trên cách hoạt động của mảng, bây giờ chúng ta sẽ xem các mảng có chiều. Mảng hai chiều tập trung vào cả hàng và cột.

Trong ví dụ trên, chúng tôi đã xác định kích thước của mảng là 1 đến 5, kích thước này tập trung vào các hàng hoặc cột.

Bằng cách sử dụng mảng hai chiều, chúng ta có thể tập trung vào cả hàng và cột. Đối với điều này, chúng ta cần bao gồm hai vòng lặp.

Đầu tiên, xác định biến sau đó muộn chúng ta sẽ quyết định về kích thước của mảng.

Mã:

 Sub Two_Array_Example () Dim Student as String End Sub 

Đầu tiên, quyết định kích thước hàng sau đó quyết định chiều dài cột.

Mã:

 Sub Two_Array_Example () Dim Student (1 đến 5, 1 đến 3) làm chuỗi kết thúc Sub 

Đối với điều này, tôi đã cấu trúc dữ liệu cho tên học sinh, điểm và trạng thái điểm.

Bây giờ quay lại cửa sổ mã hóa.

Khai báo thêm hai biến cho một vòng lặp.

Mã:

 Sub Two_Array_Example () Dim Student (1 To 5, 1 to 3) As String Dim K As Integer, J As Integer End Sub 

Bây giờ bao quanh vòng lặp như hình dưới đây.

Mã:

 Sub Two_Array_Example () Dim Student (1 To 5, 1 to 3) As String Dim k As Integer, J As Integer Cho k = 1 To 5 For J = 1 To 3 Worksheets ("Student List"). Chọn Student (k, J) = Cells (k, J) .Value Worksheets ("Copy Sheet"). Chọn Cells (k, J) .Value = Student (k, J) Next J Next k End Sub 

Điều này sẽ làm là nó sẽ sao chép dữ liệu từ trang tính “Danh sách học sinh” và dán vào “Trang tính sao chép”.

Những điều cần ghi nhớ

  • Mảng là một khái niệm rộng lớn, đây chỉ là một phần giới thiệu.
  • Bạn cần có kỹ năng viết mã nâng cao để hiểu khai báo mảng.
  • Bạn càng sử dụng nhiều mảng trong mã của mình, bạn sẽ càng quen với nó.

$config[zx-auto] not found$config[zx-overlay] not found