Câu lệnh for ubound to ubound nghĩa là gì năm 2024

Hãy nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, bản cập nhật bảo mật và hỗ trợ kỹ thuật.

UBound function

  • Bài viết
  • 03/30/2022

Trong bài viết này

Returns a data type containing the largest available subscript for the indicated dimension of an .

Syntax

UBound(arrayname, [ dimension ])

The UBound function syntax has these parts.

Part Description arrayname Required. Name of the array ; follows standard variable naming conventions. dimension Optional; Variant (Long). Whole number indicating which dimension's upper bound is returned. Use 1 for the first dimension, 2 for the second, and so on. If dimension is omitted, 1 is assumed.

Remarks

The UBound function is used with the LBound function to determine the size of an array. Use the LBound function to find the lower limit of an array dimension.

UBound returns the following values for an array with these dimensions:

Statement Return Value`UBound(A, 1)`100`UBound(A, 2)`3`UBound(A, 3)`4

Example

This example uses the UBound function to determine the largest available subscript for the indicated dimension of an array.

Dim Upper
Dim MyArray(1 To 10, 5 To 15, 10 To 20)    ' Declare array variables.
Dim AnyArray(10)
Upper = UBound(MyArray, 1)    ' Returns 10.
Upper = UBound(MyArray, 3)    ' Returns 20.
Upper = UBound(AnyArray)      ' Returns 10.

See also

  • Functions (Visual Basic for Applications)

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Mảng (Array) trong VBA được sử dụng để lưu trữ nhiều giá trị trong một biến duy nhất tại một thời điểm. Khi một loạt các giá trị được lưu trữ trong một biến duy nhất, thì nó được gọi là biến mảng.


Nội dung chính

1. Khai báo mảng trong VBA

Mảng được khai báo giống như một biến kết hợp sử dụng dấu ngoặc đơn.

' Method 1: khai báo mảng không kích thước Dim arr1() ' Method 2: khai báo mảng có kích thước Dim arr2(5) ' Method 3: Sử dụng phương thức Array Dim arr3 arr3 = Array("Java","C++","PHP") ' Method 4: chỉ định rõ kiểu giá trị của mảng Dim arr4() As String

Các tính chất của mảng trong VBA

  • Chỉ số mảng không được âm.
  • Chỉ số mảng bắt đầu từ 0 (ZERO).
  • Các mảng VBA có thể lưu trữ bất kỳ loại biến nào trong một mảng. Do đó, một mảng có thể lưu trữ một số nguyên, chuỗi hoặc các ký tự trong một biến mảng.

2. Gán giá trị cho mảng

Các giá trị được gán cho mảng bằng cách chỉ định một giá trị chỉ số mảng với mỗi một giá trị được gán.

  • TH không chỉ định rõ kiểu giá trị của mảng khi khai báo thì mảng có thể lưu giá trị bất kỳ.
  • TH chỉ định rõ kiểu giá trị của mảng khi khai báo thì mảng chỉ có thể lưu kiểu giá trị đó.
Ví dụ

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub Kết quả:

Gia tri duoc luu trong Array co index 0: 1 Gia tri duoc luu trong Array co index 1: VBScript Gia tri duoc luu trong Array co index 2: 100 Gia tri duoc luu trong Array co index 3: 2.45 Gia tri duoc luu trong Array co index 4: 7/10/2013 Gia tri duoc luu trong Array co index 5: 12:45:00 PM


3. Mảng đa chiều trong VBA

Mảng trong VBA không chỉ giới hạn trong một chiều, mà chúng có thể có tối đa 60 chiều. Các mảng hai chiều là những mảng được sử dụng phổ biến nhất.

Ví dụ

Sub arrayExample2() Dim arr(2, 3) As Variant ' mang arr co 3 hang va 4 cot arr(0, 0) = "Apple" arr(0, 1) = "Orange" arr(0, 2) = "Grapes" arr(0, 3) = "pineapple" arr(1, 0) = "cucumber" arr(1, 1) = "beans" arr(1, 2) = "carrot" arr(1, 3) = "tomato" arr(2, 0) = "potato" arr(2, 1) = "sandwitch" arr(2, 2) = "coffee" arr(2, 3) = "nuts" MsgBox ("Gia tri duoc luu trong Array co index 0,1: " & arr(0, 1)) MsgBox ("Gia tri duoc luu trong Array co index 2,2: " & arr(2, 2)) End Sub Kết quả:

Gia tri duoc luu trong Array co index 0,1: Orange Gia tri duoc luu trong Array co index 2,2: coffee


Từ khóa ReDim được sử dụng để khai báo mảng động trong VBA và phân bổ hoặc tái phân bổ không gian lưu trữ.

Cú pháp

ReDim [Preserve] arrayName(new_size) Trong đó: Preserve: Một tham số tùy chọn, được sử dụng để bảo toàn dữ liệu trong một mảng hiện có khi bạn thay đổi kích thước của mảng. arrayName: Một tham số bắt buộc, là tên của biến mảng. new_size : Một tham số bắt buộc, cho biết kích thước của mảng.

Ví dụ

Trong ví dụ sau, một mảng đã được định nghĩa lại và các giá trị được bảo toàn khi kích thước hiện tại của mảng được thay đổi.

Sub arrayExample3() Dim a() As Variant Dim i As Integer ReDim a(5) a(0) = "XYZ" a(1) = 41.25 a(2) = 22 ReDim Preserve a(7) For i = 3 To 7 a(i) = i Next 'hien thi cac phan tu cua mang a For i = 0 To UBound(a)

  MsgBox a(i)  
Next End Sub Kết quả:

Lưu ý: Khi thay đổi kích thước mảng nhỏ hơn ban đầu, dữ liệu trong các phần tử đã loại bỏ sẽ bị mất.


5. Các phương thức xử lý mảng trong VBA

Có nhiều phương thức có sẵn trong VBA giúp các nhà phát triển xử lý các mảng một cách hiệu quả. Tất cả các phương thức được sử dụng kết hợp với các mảng được liệt kê dưới đây. Xem chi tiết bằng cách click vào tên của phương thức.

No. Mô tả chức năng 1

Trả về một số nguyên tương ứng với chỉ số nhỏ nhất của mảng đã cho.

2

Trả về một số nguyên tương ứng với chỉ số lớn nhất của mảng đã cho.

3

Trả về một mảng chứa một số giá trị nhất định. Split dựa trên một dấu phân cách.

4

Trả về một chuỗi có chứa một số lượng quy định của chuỗi con trong một mảng. Đây là một chức năng đối lập với phương thức Split.

5

Ttrả về một mảng chứa một tập hợp con của một mảng chuỗi đã cho dựa trên một tiêu chí lọc cụ thể.

6

Trả về một giá trị boolean cho biết biến đầu vào có là mảng hay không.

7

Được sử dụng để giải phóng bộ nhớ được phân bổ cho các biến mảng.


Phương thức LBound

LBound trả về chỉ số nhỏ nhất của mảng được chỉ định. Do đó, LBound của mảng là ZERO.

Cú pháp

LBound(ArrayName[,dimension]) Trong đó: ArrayName: Một tham số bắt buộc. Tham số này tương ứng với tên của mảng. dimension: Một tham số tùy chọn. Nếu nó là '1', thì nó sẽ trả về giới hạn dưới của kích thước thứ nhất; nếu nó là '2', thì nó sẽ trả về giới hạn dưới của thứ hai, vv.

Ví dụ

Sub LBoundArrayExample()

Dim arr(5) As Variant  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
MsgBox ("Chi so nho nhat cu mang arr la: " & LBound(arr))  
' TH mang da chieu:  
Dim arr2(3, 2) As Variant  
MsgBox ("Chi so nho nhat cua chieu dau tien cua mang arr2 la: " & _  
    LBound(arr2, 1))  
MsgBox ("Chi so nho nhat cua chieu thu hai cua mang arr2 la: " & _  
    LBound(arr2, 2))  
End Sub Kết quả:

Chi so nho nhat cu mang arr la: 0 Chi so nho nhat cua chieu dau tien cua mang arr2 la: 0 Chi so nho nhat cua chieu thu hai cua mang arr2 la: 0


Phương thức UBound

LBound trả về chỉ số lớn nhất của mảng được chỉ định. Do đó, giá trị này tương ứng với kích thước của mảng.

Cú pháp

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 0

Trong đó: ArrayName: Một tham số bắt buộc. Tham số này tương ứng với tên của mảng. dimension: Một tham số tùy chọn. Nếu nó là '1', thì nó sẽ trả về giới hạn dưới của kích thước thứ nhất; nếu nó là '2', thì nó sẽ trả về giới hạn dưới của thứ hai, vv.

Ví dụ

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 1

Kết quả:

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 2


Phương thức Split

Phương thức Split trả về một mảng có chứa một số giá trị cụ thể được phân chia dựa trên dấu phân cách.

Cú pháp

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 3

Trong đó: Expression: Một tham số bắt buộc. Biểu thức chuỗi có thể chứa chuỗi với các dấu phân cách. Delimiter: Một tham số tùy chọn. Tham số được sử dụng để chuyển đổi thành các mảng dựa trên dấu phân cách. Count: Một tham số tùy chọn. Số lượng các chuỗi con được trả về, và nếu được chỉ định là -1, thì tất cả các chuỗi con được trả về. Compare: Một tham số tùy chọn. Tham số này xác định phương thức so sánh nào sẽ được sử dụng.

  • 0 = vbBinaryCompare: Thực hiện phép so sánh nhị phân.
  • 1 = vbTextCompare - Thực hiện so sánh văn bản.
Ví dụ

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 4

Kết quả:

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 5


Phương thức Join

Phương thức Join trả về một chuỗi có chứa một số lượng quy định của chuỗi con trong một mảng. Đây là một chức năng đối lập với phương thức Split.

Cú pháp

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 6

Trong đó: ArrayName: Một tham số bắt buộc. Một mảng có chứa các chuỗi con được nối. Delimiter: Một tham số tùy chọn. Tham số được sử dụng để chuyển đổi thành các mảng dựa trên dấu phân cách.

Ví dụ

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 7

Kết quả:

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 8


Phương thức Filter

Phương thức Filter trả về một mảng chứa một tập hợp con của một mảng chuỗi đã cho dựa trên một tiêu chí lọc cụ thể.

Cú pháp

Sub arrayExample1()

Dim i As Integer  
Dim arr(5)             ' Khai bao mang  
arr(0) = "1"           ' String  
arr(1) = "VBScript"    ' String  
arr(2) = 100           ' Number  
arr(3) = 2.45          ' Decimal Number  
arr(4) = 
# 10/7/2013# ' Date
arr(5) = 
# 12:45:00 PM# ' Time
' duyet cac phan tu cua mang  
For i = 0 To UBound(arr)  
    MsgBox ("Gia tri duoc luu trong Array co index " & i & ": " & arr(i))  
Next i  
End Sub 9

Trong đó: inputstrings: Một tham số bắt buộc. Tham số này tương ứng với mảng các chuỗi được tìm kiếm. value: Một tham số bắt buộc. ham số này tương ứng với chuỗi để tìm kiếm đối với tham số đầu vào. include: Một tham số tùy chọn. Đây là một giá trị Boolean, cho biết có trả lại các chuỗi con bao gồm hay loại trừ. compare: Một tham số tùy chọn. Tham số này xác định phương thức so sánh nào sẽ được sử dụng.

  • 0 = vbBinaryCompare: Thực hiện phép so sánh nhị phân.
  • 1 = vbTextCompare - Thực hiện so sánh văn bản.
Ví dụ

Gia tri duoc luu trong Array co index 0: 1 Gia tri duoc luu trong Array co index 1: VBScript Gia tri duoc luu trong Array co index 2: 100 Gia tri duoc luu trong Array co index 3: 2.45 Gia tri duoc luu trong Array co index 4: 7/10/2013 Gia tri duoc luu trong Array co index 5: 12:45:00 PM 0

Kết quả:

Gia tri duoc luu trong Array co index 0: 1 Gia tri duoc luu trong Array co index 1: VBScript Gia tri duoc luu trong Array co index 2: 100 Gia tri duoc luu trong Array co index 3: 2.45 Gia tri duoc luu trong Array co index 4: 7/10/2013 Gia tri duoc luu trong Array co index 5: 12:45:00 PM 1


Phương thức IsArray

Phương thức IsArray trả về một giá trị boolean cho biết biến đầu vào có là mảng hay không.

Cú pháp

Trong đó: ArrayName: Một tham số bắt buộc. Tham số này tương ứng với tên của mảng.

Ví dụ

Gia tri duoc luu trong Array co index 0: 1 Gia tri duoc luu trong Array co index 1: VBScript Gia tri duoc luu trong Array co index 2: 100 Gia tri duoc luu trong Array co index 3: 2.45 Gia tri duoc luu trong Array co index 4: 7/10/2013 Gia tri duoc luu trong Array co index 5: 12:45:00 PM 2

Kết quả:

Gia tri duoc luu trong Array co index 0: 1 Gia tri duoc luu trong Array co index 1: VBScript Gia tri duoc luu trong Array co index 2: 100 Gia tri duoc luu trong Array co index 3: 2.45 Gia tri duoc luu trong Array co index 4: 7/10/2013 Gia tri duoc luu trong Array co index 5: 12:45:00 PM 3


Phương thức Erase

Phương thức Erase được sử dụng để đặt lại các giá trị của các mảng kích thước cố định và giải phóng bộ nhớ của mảng động. Nó hoạt động tùy thuộc vào loại mảng.