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 mà 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 mà chúng ta gán tên từng học sinh một; dưới đây là mã ví dụ của cùng một.

Mã:

Sub Array_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 nhiều biến như vậy, thì sao 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.

Ví dụ

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. Đúng hơn, chúng ta cần tuân theo các khái niệm đơn giản.

Đầu tiên, hãy 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, bây giờ hãy đảm bảo 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 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 trong những cách làm. Chúng tôi 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 một biến nữa cho 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 có 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 cho 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à 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, vì vậy việc sử dụng thuộc tính CELLS sẽ 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ờ hãy 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 ta đã xác định kích thước của mảng là 1 đến 5; cái 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, điểm và trạng thái điểm của học sinh.

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ó.

thú vị bài viết...