您要返回数组“大小”的函数是UBound function,它返回上边界。这通常与其对应的 LBound function 一起使用,它返回 Lower Boundary。
这可能会或可能不会返回您正在寻找的号码。一些数组以从零开始的索引排列,而另一些则以从一开始的索引排列。这取决于它们的声明和分配方式。
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 开始的二维数组,即使您只是从单个列或行中收集值。另一个维度或 Rank 只是 1 比 1。
colName = Range("A1:C2").Value2
这将创建一个二维数组,其索引从 1 开始,如 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
我建议在处理数组元素时同时使用LBound 和UBound。