在excel / VBA中我有这段代码
Dim colName as Variant
Dim lengthToDispl as Integer
colName = Array("A", "B", "C")
lengthToDispl = colName.length
我收到以下错误' Object Required'。它与最后一行有关。
如何将变量长度数组(包含字符串)的长度赋给变量(整数)?
答案 0 :(得分:3)
要返回数组'大小'的函数是UBound function,它返回上边界。这通常与其对应的LBound function一起使用,后者返回下边界。
这可能会也可能不会返回您要查找的号码。一些数组排列为从零开始的索引,一些数组具有从一开始的索引。这取决于它们的声明和分配方式。
colName = Array("A", "B", "C")
上面创建了一个数组,其中包含从零开始的索引以及位置colName(0)
,colName(1)
和colName(2)
中的三个元素。 UBound(例如UBound(colName)
)将返回2而不是3.要循环使用它,请同时使用LBound和UBound。
for i = LBound(colName) to UBound(colName)
debug.print colName(i)
next i
从工作表的单元格中指定值时,即使您只是从单个列或行中收集值,也会得到一个基于单一的二维数组。另一个维度或排名只是 1到1 。
colName = Range("A1:C2").Value2
这将创建一个二维数组,其中包含一个基于一的索引,如ReDim colName (1 to 2, 1 to 3)
。
debug.print LBound(colName, 1) & " to " & UBound(colName, 1)
debug.print LBound(colName, 2) & " to " & UBound(colName, 2)
for i = LBound(colName, 1) to UBound(colName, 1)
for j = LBound(colName, 2) to UBound(colName, 2)
debug.print colName(i, j)
next j
next i