Hàm UBound VBA - Làm thế nào để sử dụng UBound trong Excel VBA?

Mục lục

UBOUND hay còn được gọi là Upper Bound, hàm này trong VBA được sử dụng với chức năng đối lập với nó là LBOUND hay còn được gọi là hàm Lower Bound, công dụng của hàm này là xác định độ dài của một mảng trong mã và như tên gợi ý UBOUND được sử dụng để xác định giới hạn trên của mảng.

Hàm VBA UBOUND

Làm thế nào để bạn biết độ dài tối đa của mảng trong excel? Có, chúng ta có thể xem và cập nhật độ dài tối đa của mảng theo cách thủ công nhưng nếu bạn đang thực hiện tất cả những điều này trong lúc đó, thì hôm nay là kết thúc vì chúng ta có một hàm gọi là UBOUND để xác định độ dài tối đa của mảng. Hãy theo dõi bài viết này để có thêm kiến ​​thức về hàm UBOUND trong Excel VBA.

UBOUND là viết tắt của Upper Bound. Thông thường, trong quá trình viết mã, chúng ta có thể yêu cầu tìm độ dài tối đa của mảng. Ví dụ, MyResult (24) có nghĩa là tên mảng MyResult giữ 25 giá trị cho nó vì mảng bắt đầu từ 0, không phải từ một. Vì vậy, 24 có nghĩa là +1, tức là, tổng số 25 giá trị.

Ở đây độ dài tối đa của mảng là 24. Thay vì cung cấp độ dài mảng theo cách thủ công, chúng ta có thể sử dụng hàm tích hợp UBOUND để lấy độ dài tối đa của mảng.

Mã là: UBOUND (MyResult), tức là UBOUND (24)

Vì vậy, hàm VBA UBOUND trong Excel đại diện cho giới hạn trên của kích thước mảng.

Làm thế nào để sử dụng Hàm UBound VBA trong Excel?

Công thức của VBA UBOUND rất đơn giản vì nó chỉ có hai tham số.

UBound (Tên mảng (, Thứ nguyên))
  • Array Name: Đây là tên của tên mảng mà chúng ta đã xác định. Ví dụ, trong ví dụ trên, MyResult là tên mảng.
  • (Kích thước): Nếu mảng có nhiều hơn một chiều, thì chúng ta cần xác định chiều của mảng. Nếu bạn bỏ qua nó, nó sẽ coi thứ nguyên đầu tiên theo mặc định.

Hàm VBA UBOUND trong Excel rất hữu ích trong việc xác định độ dài của các vòng lặp trong khi chạy các vòng lặp.

Ví dụ về hàm UBOUND trong Excel VBA

Dưới đây là các ví dụ thực tế về Hàm UBound của VBA.

Ví dụ 1

Để bắt đầu quá trình tố tụng, hãy để tôi viết mã đơn giản. Làm theo các bước dưới đây để áp dụng chức năng VBA UBOUND.

Bước 1: Khởi động macro excel và xác định tên biến.

Mã:

Sub Ubound_Example1 () Dim ArrayLength (0 đến 4) Dưới dạng chuỗi

Bước 2: Tôi sẽ gán giá trị cho tên mảng này.

Mã:

Sub Ubound_Example1 () Dim ArrayLength (0 đến 4) As String ArrayLength (0) = "Chào" ArrayLength (1) = "Bạn" ArrayLength (2) = "Chào mừng" ArrayLength (3) = "đến" ArrayLength (4) = "Lớp VBA" End Sub

Bước 3: Bây giờ, sử dụng hộp thông báo với hàm UBOUND, chúng ta sẽ thấy độ dài tối đa của mảng.

Mã:

Sub Ubound_Example1 () Dim ArrayLength (0 đến 4) As String ArrayLength (0) = "Chào" ArrayLength (1) = "Bạn" ArrayLength (2) = "Chào mừng" ArrayLength (3) = "đến" ArrayLength (4) = "Lớp VBA" MsgBox "Độ dài đường biên trên là:" & UBound (ArrayLength) End Sub

Bước 4: Chạy mã này bằng cách nhấn phím F5 hoặc bạn cũng có thể chạy mã theo cách thủ công, như được hiển thị trong ảnh chụp màn hình bên dưới.

Hộp thông báo sẽ hiển thị cho bạn số giới hạn trên của mảng sẽ được hiển thị trong hộp thông báo.

Như thế này bằng cách sử dụng hàm VBA UBOUND trong Excel, chúng ta có thể lấy độ dài giới hạn trên của một mảng.

Ví dụ # 2 - Sử dụng Hàm VBA UBOUND trong Excel để sao chép dữ liệu

Giả sử bạn có một danh sách dữ liệu trong một trang tính excel như bên dưới.

Dữ liệu này sẽ cập nhật hàng ngày và bạn cần sao chép dữ liệu này vào trang tính mới mỗi khi cập nhật. Việc cập nhật thủ công này sẽ mất một lượng thời gian đáng kể tại nơi làm việc của bạn, nhưng tôi sẽ chỉ cho bạn một mã macro đơn giản để tự động hóa việc này.

Bước 1: Tạo macro và xác định biến mảng.

Mã:

Sub Ubound_Example2 () Dim DataRange () Làm biến thể End Sub

Bước 2: Bây giờ kích hoạt biểu dữ liệu bằng cách tham chiếu đến tên của nó.

Mã:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Kích hoạt End Sub

Bước 3: Bây giờ chỉ định phạm vi dữ liệu cho biến đã xác định bằng cách sử dụng đoạn mã dưới đây.

Mã:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Kích hoạt DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add Range(ActiveCell, ActiveCell.Offset(UBound(DataRange, 1) - 1, UBound(DataRange, 2) - 1)) = DataRange End Sub

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.

Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Kích hoạt DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Những điều cần ghi nhớ

  • UBOUND trả về độ dài tối đa của mảng.
  • Mảng bắt đầu từ 0, không phải từ 1.
  • Nếu bạn muốn giá trị thấp hơn của mảng, thì bạn cần sử dụng VBA LBOUND.
  • Nếu mảng có nhiều thứ nguyên, thì bạn cũng cần chỉ định số thứ nguyên.

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