So sánh UBound và LBound trong VBA

Học lập trình Access nâng cao bạn cần nắm rõ UBound và LBound khác nhau như thế nào ?

  1. LBound và UBound là gì trong VBA
  2. Hàm LBound trong VBA
  3. Hàm UBound trong VBA
  4. Sự khác biệt giữa LBound và UBound trong VBA
  5. Ứng dụng mảng đa chiều với LBound và UBound trong VBA

1. LBound và UBound là gì trong VBA

Là 2 hàm đều trả về giá trị số nguyên, sử dụng trong các bài toán khó của lập trình.

LBound và UBound là hai hàm được sử dụng để lấy chỉ số nhỏ nhất và lớn nhất của mảng, giúp bạn xác định phạm vi của chỉ số mảng.

2. Hàm LBound trong VBA

    LBound(array)
        Hàm này trả về chỉ số nhỏ nhất (lower bound) của mảng.
        Mặc định trong VBA, chỉ số nhỏ nhất của mảng là 0, nhưng nếu mảng được khai báo với chỉ số bắt đầu khác (ví dụ: mảng từ 1 đến 5), thì LBound sẽ trả về chỉ số bắt đầu đó.
        Cú pháp: LBound(array)

    Ví dụ:

Dim a(1 To 5) As Integer
MsgBox LBound(a)  ' Kết quả là 1, vì mảng bắt đầu từ 1

3. Hàm UBound trong VBA

    Hàm này trả về chỉ số lớn nhất (upper bound) của mảng.
    Ví dụ, nếu mảng được khai báo với chỉ số từ 1 đến 5, UBound sẽ trả về 5.
    Cú pháp: UBound(array)

   Ví dụ:

    Dim a(1 To 5) As Integer
    MsgBox UBound(a)  ' Kết quả là 5, vì mảng có chỉ số lớn nhất là 5

4. Sự khác biệt giữa LBound và UBound trong VBA

    LBound trả về chỉ số nhỏ nhất của mảng (ví dụ: 0 hoặc 1, tùy thuộc vào cách khai báo mảng).
    UBound trả về chỉ số lớn nhất của mảng (ví dụ: 4 cho mảng 5 phần tử có chỉ số từ 0 đến 4, hoặc 5 cho mảng 5 phần tử có chỉ số từ 1 đến 5).

Ví dụ minh họa:


    Dim arr1(0 To 4) As Integer  ' Mảng có chỉ số từ 0 đến 4
    Dim arr2(1 To 10) As Integer ' Mảng có chỉ số từ 1 đến 10

    ' Lấy chỉ số nhỏ nhất và lớn nhất của mảng arr1
    MsgBox "arr1 - LBound: " & LBound(arr1) & ", UBound: " & UBound(arr1)
    
    ' Lấy chỉ số nhỏ nhất và lớn nhất của mảng arr2
    MsgBox "arr2 - LBound: " & LBound(arr2) & ", UBound: " & UBound(arr2) 



Kết quả:

    arr1 - LBound: 0, UBound: 4
    arr2 - LBound: 1, UBound: 10

    Nếu mảng được khai báo với một chỉ số tùy chỉnh, LBound và UBound sẽ trả về chỉ số thấp nhất và cao nhất tương ứng.
    Bạn có thể sử dụng các hàm này khi làm việc với mảng động (dynamic arrays) hoặc mảng có chỉ số tùy chỉnh.

5. Ứng dụng mảng đa chiều với LBound và UBound trong VBA

Ví dụ tạo ra mảng đa chiều:

Dim A(1 To 100, 0 To 3, -3 To 4) 

Hàm

Giá trị Trả về

Giải thích
-- Trên    

UBound(A, 1)

100

Chiều 1

UBound(A, 2)

3

Chiều 2

UBound(A, 3)

4

Chiều 3
-- Dưới    

LBound(A, 1)

1 Chiều 1

LBound(A, 2)

0 Chiều 2

LBound(A, 3)

-3 Chiều 3

 

Tìm kiếm:

Bài viết liên quan:

Học lập trình Access nâng cao bạn cần nắm rõ UBound và LBound khác nhau như thế nào ?