迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Vba >

在 VBA 中获取数组长度

作者:迹忆客 最近更新:2023/03/19 浏览次数:

数组是计算机编程中的流行工具,你可以在其中保存所需的信息以供以后使用或代码执行期间使用。几乎每一种计算机编程语言,数组都包含在它们的库中,因为有时不可避免地需要保存和检索信息。

在 VBA 中,获取数组的长度意味着计算数组中存在的元素的数量。为此,你必须知道索引的最低和最高元素。然后,最高与最低之间的差异将是数组长度。

此外,你可以使用 COUNTA 工作表函数来获取相同的信息。

本篇文章使用最高/最低索引差异和 COUNTA 工作表函数来获取 VBA 数组的长度。

获取最高和最低索引的差异以获取 VBA 中的数组长度

该方法的逻辑是,我们可以通过将最低索引减去最高索引然后加 1 来获得数组的长度。我们加 1 是因为需要在数组长度中包含最低索引。

下面的代码块将演示如何获取一个固定长度数组的数组长度。请注意,仅获取最高索引来获取数组长度并不总是正确的,因为在某些情况下最低索引不等于 0 并且可以从不同的索引开始。

Sub ArrayLengthDemo()

Dim stringArr(5 To 9) As String

stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"

Debug.Print "The array length of stringArr is " UBound(stringArr) - LBound(stringArr) + 1
End Sub

ArrayLengthDemo 输出:

The array length of stringArr is  5

下面的代码块将演示如何获取动态数组的数组长度。

Sub ArrayLengthDemo()

Dim StringArr As Variant

StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")

Debug.Print "The array length of StringArr is "; UBound(StringArr) - LBound(StringArr) + 1

End Sub

ArrayLengthDemo 输出:

The array length of stringArr is  5

将演示在下面的代码中实现获取数组长度的函数。如果经常需要获取数组长度,这将很有帮助。

此外,下面的代码具有额外的逻辑来检测要测量的数组是否为空。

Public Function GetArrayLength(arr As Variant) As Integer
   If IsEmpty(arr) Then
      GetArrayLength = 0
   Else
      GetArrayLength = UBound(arr) - LBound(arr) + 1
   End If
End Function

Sub GetArrayLengthDemo1()


Dim stringArr(5 To 9) As String

stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"

Debug.Print "The array length is " & GetArrayLength(stringArr)

End Sub

Sub GetArrayLengthDemo2()

Dim NullArr As Variant

Debug.Print "The array length is " & GetArrayLength(NullArr)

End Sub

GetArrayLengthDemo1 输出:

The array length is 5

GetArrayLengthDemo2 输出:

The array length is 0

在 VBA 中使用 COUNTA 工作表函数来获取数组长度

数组是以单维或多维方式构造的元素的集合。你可以使用 COUNTA 工作表函数在一行代码中计算这些元素。

下面的代码块演示了如何使用 COUNTA 工作表函数获取数组长度。

语法:

WorksheetFunction.CountA([ arrayName ])

范围:

   
[arrayName] 要测量的数组

COUNTA 工作表函数仅限于 30 个元素。如果处理大型数组,建议使用第一种方法。

Sub ArrayLengthDemo()

Dim stringArr(5 To 9) As String

stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"

Debug.Print "The array length of stringArr is " & WorksheetFunction.CountA(stringArr)
End Sub

ArrayLengthDemo 输出:

The array length of stringArr is 5
Sub ArrayLengthDemo()

Dim StringArr As Variant

StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")

Debug.Print "The array length of StringArr is " & WorksheetFunction.CountA(stringArr)

End Sub

ArrayLengthDemo 输出:

The array length of stringArr is  5 

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 VBA 中计算列数

发布时间:2023/03/19 浏览次数:103 分类:Vba

本教程演示如何计算 VBA 中的列数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便