VBA UBound功能|如何在Excel VBA中使用UBound?

UBOUND或也称为Upper Bound,在VBA中此功能与其相反的功能与LBOUND或也称为Lower Bound函数一起使用,此功能的用途是在代码中定义数组的长度,顾名思义,UBOUND用于定义数组的上限。

VBA UBOUND功能

您如何在excel中分辨出数组的最大长度?是的,我们可以手动查看和更新​​数组的最大长度,但是如果您正在做所有这些事情,那么今天就结束了,因为我们有一个称为UBOUND的函数来确定数组的最大长度。请遵循本文以更多地了解Excel VBA中的UBOUND函数。

UBOUND代表上限。通常,在编码中,我们可能经常需要查找数组的最大长度。例如, 我的结果(24) 表示数组名称 我的结果 它持有25个值,因为数组从零开始,而不是从1开始。所以24表示+1,即总共25个值。

在这里,数组的最大长度为24,而不是手动提供数组长度,我们可以使用内置函数UBOUND来获取数组的最大长度。

代码是:UBOUND(MyResult)即UBOUND(24)

因此,Excel VBA UBOUND函数表示数组大小的上限。

如何在Excel中使用VBA UBound函数?

VBA UBOUND的公式非常简单,因为它只有两个参数。

UBound(Arrayname [,Dimension])
  • 阵列名称: 这是我们定义的数组名称的名称。例如,在上面的示例中, 我的结果 是数组名称。
  • [方面]: 如果数组具有多个维,则需要指定数组的维。如果忽略,则默认情况下将处理第一个尺寸。

Excel VBA UBOUND函数在运行循环时确定循环的长度时非常有用。

Excel VBA中的UBOUND函数示例

以下是VBA UBound函数的实际示例。

您可以在此处下载此VBA UBound功能模板– VBA UBound功能模板

范例#1

首先,让我编写简单的代码。请按照以下步骤应用VBA UBOUND功能。

步骤1: 启动excel宏并定义变量名称。

代码:

 Sub Ubound_Example1()Dim ArrayLength(0到4)作为字符串 

第2步: 我将为该数组名称分配值。

代码:

 Sub Ubound_Example1()Dim ArrayLength(0到4)As String ArrayLength(0)=“ Hi” ArrayLength(1)=“ Friend” ArrayLength(2)=“ Welcome” ArrayLength(3)=“ to” ArrayLength(4)= “ VBA类”结束子 

第三步: 现在,使用带有UBOUND函数的消息框,我们将看到数组的最大长度。

代码:

 Sub Ubound_Example1()Dim ArrayLength(0到4)As String ArrayLength(0)=“ Hi” ArrayLength(1)=“ Friend” ArrayLength(2)=“ Welcome” ArrayLength(3)=“ to” ArrayLength(4)= “ VBA类” MsgBox“上界长度是:”&UBound(ArrayLength)结束子 

第4步: 通过按F5键运行此代码,或者也可以手动运行代码,如下面的屏幕快照所示。

该消息框将向您显示该数组的上限编号,该数字将显示在该消息框中。

像这样使用Excel VBA UBOUND函数,我们可以获得数组的上限长度。

Example#2 –使用Excel VBA UBOUND函数复制数据

假设您在一个excel表中有一个数据列表,如下表所示。

该数据将每天更新,您需要在每次更新时将其复制到新工作表中。在您的工作场所中,手动更新此过程将花费大量时间,但是我将向您展示简单的宏代码来自动执行此操作。

步骤1: 创建一个宏并定义数组变量。

代码:

 Sub Ubound_Example2()Dim DataRange()作为变体结束Sub 

第2步: 现在,通过引用其名称来激活数据表。

代码:

 Sub Ubound_Example2()Dim DataRange()作为Variant Sheets(“ Data Sheet”)。Activate End Sub 

第三步: 现在,使用以下代码将数据范围分配给已定义的变量。

代码:

 Sub Ubound_Example2()Dim DataRange()as Variant Sheets(“ Data Sheet”)。Activate DataRange = Range(“ A2”,Range(“ A1”)。End(xlDown).End(xlToRight))End Sub 

第4步: 现在,向工作簿中添加一个新的工作表。

代码:

 Sub Ubound_Example2()Dim DataRange()作为Variant Sheets(“ Data Sheet”)。激活DataRange = Range(“ A2”,Range(“ A1”)。End(xlDown).End(xlToRight))Worksheets.Add End Sub 

步骤5: 现在,使用下面的代码形式,通过使用Excel VBA UBOUND函数将数据添加到新添加的表中。

代码:

 Sub Ubound_Example2()Dim DataRange()作为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 

上面的代码将使单元格偏移UBOUND函数返回的最大长度,并且该范围将等于数组名称“数据范围

步骤6: 现在运行此代码,它将把值粘贴到新表中。

此代码是动态代码,因为即使数据水平和垂直增加,它也会自动占据范围。现在,我将向数据添加一些虚拟行。

现在,我将再次运行此代码,它现在还将添加新添加的行。

代码:

 Sub Ubound_Example2()Dim DataRange()作为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擦除DataRange End Sub 

要记住的事情

  • UBOUND返回数组的最大长度。
  • 数组从0开始,而不是从1开始。
  • 如果需要较低的数组值,则需要使用VBA LBOUND。
  • 如果数组具有多个维度,则还需要指定维度编号。