在 vba 中获取数组长度
数组是计算机编程中的流行工具,你可以在其中保存所需的信息以供以后使用或代码执行期间使用。几乎每一种计算机编程语言,数组都包含在它们的库中,因为有时不可避免地需要保存和检索信息。
在 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 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2023/03/19 浏览次数:627 分类:vba
-
本教程演示了如何在 vba 中使用具有多个条件的自动过滤器。
发布时间:2023/03/19 浏览次数:383 分类:vba
-
本教程演示如何在 vba 中设置工作表。