VBA中的UBound

array("A","B","C","D","E")
请问UBound(array)返回的是5还是4呢? 在VBA中!!!

返回4,因为默认下标是从0开始的。相当于A(0 to 4)
UBound语法如下:
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。
UBound(arrayname[, dimension])
arrayname
必需的。数组变量的名称,遵循标准变量命名约定。
dimension
可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2
表示第二维,如此等等。如果省略 dimension,就认为是 1。

对具有下述维数的数组而言,UBound 的返回值见下表:
Dim A(1 To 100, 0 To 3, -3 To 4)

UBound(A, 1) = 100
UBound(A, 2) = 3
UBound(A, 3) = 4追问

意思是不是,如果它没有写清array() 中的X to Y, 就默认X=0,就是从array(0)开始算第一个元素?

追答

是的,如果没指明下标,下标默认为0.以下解释来自Excel VBA帮助原文:
“例如,若要存储一年中每天的支出,可以声明一个具有 365 个元素的数组变量,而不是 365 个变量。数组中的每一个元素都包含一个值。以下语句声明数组变量 curExpense 具有 365 个元素
Dim curExpense(364) As Currency
按照缺省规定,数组的索引是从零开始,所以此数组的上标界是 364 而不是 365。”

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-26
如果没指明下标起始值,下标默认是从0开始的
所以问题中返回的会是4

如果VBA模块中用了这句Option Base 1
则默认下标起始是1
则问题中返回的会是5

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网