我曾经将我的数组定义为Array =“Range”。由于这引起的问题,我已将我的数组重新定义为2列的并集。不幸的是,语法Ubound(Array,dimension)现在抛出错误。如果有人能够解释语法如何与我的新定义一起使用,那将非常感激。
这是用于定义数组的代码:
Sub define_array_5(Array_1)
Dim wsh As Worksheet
Dim range1 As Range
Dim range2 As Range
Dim finalrange As Range
Dim a As Integer
Dim finalrow As Integer
' define array
finalrow = Range("a1").End(xlDown).row
Set range1 = Range(Cells(1, 1), Cells(finalrow, 1))
Set range2 = Range(Cells(1, 5), Cells(finalrow, 5))
Set finalrange = Union(range1, range2)
ReDim Array_1(1 To finalrange.Areas.Count)
For a = 1 To finalrange.Areas.Count
Array_1(a) = finalrange.Areas(a)
Next
End Sub
我已经想到,例如,旧定义中的Array_1(3,2)现在是Array_1(2)(3,1),但是Ubound的语法正在逃避我。
答案 0 :(得分:1)
你所问的内容在你的例子中没有意义。
您明确将Array_1
定义为Area的单维数组,每个数组都有上限。
'this dimensions it as a 1-D array
ReDim Array_1(1 To finalrange.Areas.Count)
我认为你在寻找的是:
For a = 1 To finalrange.Areas.Count
Array_1(a) = finalrange.Areas(a)
'this is what I think you are trying to do
Debug.Print UBound(Array_1(a))
Next
这为您提供了1-D数组的数组元素a
的上限。