Kích thước mảng VBA - Hướng dẫn từng bước với các ví dụ

Trong bài viết này, chúng tôi cung cấp hướng dẫn từng bước để tìm kích thước mảng bằng Mã VBA.

Làm thế nào để tìm kích thước của một mảng bằng mã VBA?

Làm theo các bước để tìm kích thước mảng bằng mã VBA trong Excel.

  • Bước 1: Chúng ta hãy bắt đầu với điều cơ bản đầu tiên, khai báo một biến trong VBA là kiểu dữ liệu biến thể.

Mã:

Sub Array_Size () Dim MyArray làm biến thể End Sub
  • Bước 2: Đối với biến này sử dụng hàm ARRAY và gán một số giá trị như hình dưới đây.

Mã:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") End Sub
  • Bước 3: Ok, chúng ta đã gán một số giá trị cho tên mảng “MyArray”.

Giả sử nếu chúng ta cần viết một vòng lặp để lưu trữ các giá trị mảng này vào các ô, thì chúng ta cần quyết định xem vòng lặp phải chạy bao nhiêu lần. Điều này phụ thuộc vào số lượng giá trị mà mảng có.

Ok, bây giờ hãy nhìn vào số lượng giá trị được gán cho tên mảng “MyArray”, có tổng cộng 7 giá trị được gán cho mảng, vậy bây giờ chúng ta biết vòng lặp phải chạy bao nhiêu lần để lưu các giá trị của mảng vào các ô. .

  • Bước 4: Khai báo một biến khác là số nguyên để viết vòng lặp FOR trong VBA.

Mã:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Tiếp theo k Kết thúc Sub
  • Bước 5: Đến đây chúng ta đã mở vòng lặp FOR bắt đầu từ 1 đến 7, bên trong vòng lặp ghi thuộc tính CELLS để lưu trữ như hình bên dưới.

Mã:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Ô (k, 1) .Value = MyArray (k) Tiếp theo k End Sub
  • Bước 6: Ok, bây giờ hãy thực thi từng dòng mã bằng cách nhấn một phím chức năng F8. Khi nhấn phím F8 lần đầu tiên, nó sẽ bắt đầu macro.
  • Bước 7: Nhấn F8 lúc này nó sẽ nhảy đến dòng gán giá trị mảng.
  • Bước 8: Hiện tại tên mảng “MyArray” không có giá trị nào trong đó, nhấn F8 và tất cả các giá trị được đề cập sẽ được gán cho biến mảng.
  • Bước 9: Vòng lặp Now sẽ bắt đầu chạy và nhấn phím F8 2 lần và xem chúng ta nhận được giá trị nào trong ô A1.
  • Giáo sư!!! Chờ đã, giá trị đầu tiên của chúng tôi trong biến mảng là “Jan”, nhưng chúng tôi đã nhận được kết quả là giá trị thứ hai “Feb” khi vòng lặp giá trị đầu tiên vẫn đang chạy.
  • Bước 10: Điều này là do khi số lượng giá trị mảng của bạn bắt đầu từ 0, không phải từ 1, vì vậy chúng ta cần bao gồm vòng lặp bắt đầu là 0.
  • Bước 11: Khi vị trí bắt đầu của vòng lặp bị giảm đi một kết thúc tương tự cũng sẽ giảm đi 1, vì vậy hãy đặt kết thúc là 6 thay vì 7.
  • Bước 12: Sau khi vòng lặp bắt đầu và kết thúc quyết định một tinh chỉnh nữa mà chúng tôi cần thực hiện, tức là trong thuộc tính CELLS, chúng tôi đã sử dụng biến “k” làm bộ chọn ô động nhưng vì vòng lặp của chúng tôi bắt đầu từ 0 nên không có ô nào bắt đầu bằng 0 , vì vậy hãy thêm cộng 1 vào biến “k”.

Mã:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 0 to 6 Ô (k + 1, 1) .Value = MyArray (k) Tiếp theo k Kết thúc Sub
  • Bước 13: Vì vậy, bây giờ khi chạy vòng lặp lần đầu tiên giá trị “k” là 0 và vì chúng ta đã thêm cộng 1, giá trị “k” sẽ là 1 do đó tham chiếu đến ô A1.
  • Bước 14: Bây giờ hãy chạy mã và tất cả các giá trị của mảng sẽ được lưu trữ trong các ô.

Tuy nhiên, trong trường hợp này, chúng tôi đã quyết định kích thước bắt đầu và kết thúc của vòng lặp theo cách thủ công, nhưng kích thước của mảng có thể được xác định dễ dàng bằng cách sử dụng các hàm LBOUND & UBOUND.

Tự động tìm kích thước của mảng

  • Bước 1: Khi chúng ta về điểm bắt đầu và kết thúc của vòng lặp bao gồm ở trên, chúng ta đã đếm thủ công số lượng giá trị mà mảng có nhưng để bắt đầu mảng, hãy sử dụng hàm LBOUND và cho tên biến “MyArray” này.
  • Bước 2: Và để xác định kích thước mảng cuối cùng, hãy sử dụng hàm UBOUND và nhập tên mảng “MyArray”.

Mã:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = Lboubd (MyArray ) Đến ô UBound (MyArray) (k + 1, 1) .Value = MyArray (k) Tiếp theo k End Sub
  • Bước 3: Ok bây giờ bắt đầu từng dòng theo mã dòng và nhấn phím F8 cho đến khi nó đạt đến điểm bắt đầu của vòng lặp.
  • Bước 4: Bây giờ trước tiên hãy đặt con trỏ của bạn vào “LBound (MyArray)” và xem nó nói gì.
  • Bước 5: Số điểm bắt đầu mà nó nói là số 0, bây giờ hãy đặt con trỏ vào “UBound (MyArray)” và xem nó nói gì.

Nó cho biết kích thước mảng là 6, vì vậy, giống như cách chúng tôi đã đề cập đến việc bắt đầu và kết thúc theo cách thủ công, UBOUND và LBOUND tự động chọn các số cho chúng tôi.

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