- Ubound và Lbound là 2 hàm trả về kích thước của mảng
LBound(ArrayName, Dimension)
Sub test()
Dim arr(9)
MsgBox LBound(arr)
MsgBox UBound(arr)
End Sub
- Nếu muốn mảng bắt đầu bằng 1 thì có 2 cách: khai báo Option Base 1 ở đầu module hoặc khai báo mảng tường minh ra: dim arr(1 to 9)
- Trên đây là nói về trường hợp mảng 1 chiều, đối với mảng 2 chiều thì có thêm Dimension =2. Ví dụ như sau: dim arr(1 to 350, 1 to 10) thì :
Lbound(arr,1)=1 (chỉ số thấp nhất của dòng): dòng từ 1 đến 350
Lbound(arr,2)=1 (chỉ số thấp nhất của cột): cột từ 1 đến 10
Ubound(arr,1)=350 ( chỉ số cao nhất của dòng)
Ubound(arr,2)=10( chỉ số cao nhất của cột)
==> như vậy kết luận lại chỉ trong 2 dòng
1. Nếu for i = lbound(arr,1) to ubound(arr,1) : là duyệt từ dòng đầu đến dòng cuối của mảng
2. Nếu for i = lbound(arr,2) to ubound(arr,2) : là duyệt từ cột đầu đến cột cuối của mảng
Các bạn có thể test bằng Sub bên dưới:
Sub test()
Dim arr(1 To 350, 1 To 10)
MsgBox LBound(arr, 1)
MsgBox UBound(arr, 1)
MsgBox LBound(arr, 2)
MsgBox UBound(arr, 2)
End Sub
LBound(ArrayName, Dimension)
UBound(ArrayName, Dimension)
- Khi ta viết Lbound(ArrayName) hoặc Ubound(ArrayName) thì Dimension mặc định =1
ArrayName: tên mảng.
- Một mảng thông thường thì sẽ được bắt đầu từ 0, ví dụ khi ta khai báo Dim arr(9) thì có nghĩa là mảng này là mảng 1 chiều, có 10 phần tử và nó bắt đầu từ 0: arr(0), arr(1) , ... , arr(9) . Lúc này Lbound(arr)=0 , Ubound(arr)=9. Bạn có thể test bằng sub bên dướiSub test()
Dim arr(9)
MsgBox LBound(arr)
MsgBox UBound(arr)
End Sub
- Nếu muốn mảng bắt đầu bằng 1 thì có 2 cách: khai báo Option Base 1 ở đầu module hoặc khai báo mảng tường minh ra: dim arr(1 to 9)
- Trên đây là nói về trường hợp mảng 1 chiều, đối với mảng 2 chiều thì có thêm Dimension =2. Ví dụ như sau: dim arr(1 to 350, 1 to 10) thì :
Lbound(arr,1)=1 (chỉ số thấp nhất của dòng): dòng từ 1 đến 350
Lbound(arr,2)=1 (chỉ số thấp nhất của cột): cột từ 1 đến 10
Ubound(arr,1)=350 ( chỉ số cao nhất của dòng)
Ubound(arr,2)=10( chỉ số cao nhất của cột)
==> như vậy kết luận lại chỉ trong 2 dòng
1. Nếu for i = lbound(arr,1) to ubound(arr,1) : là duyệt từ dòng đầu đến dòng cuối của mảng
2. Nếu for i = lbound(arr,2) to ubound(arr,2) : là duyệt từ cột đầu đến cột cuối của mảng
Các bạn có thể test bằng Sub bên dưới:
Sub test()
Dim arr(1 To 350, 1 To 10)
MsgBox LBound(arr, 1)
MsgBox UBound(arr, 1)
MsgBox LBound(arr, 2)
MsgBox UBound(arr, 2)
End Sub
Bài viết dễ hiểu
Trả lờiXóaĐăng nhận xét