Ubound(Array)的语法,其中数组是范围的联合

我曾经有我的数组定义为数组=“范围”。 由于这个问题,我已经将我的数组重新定义为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的语法正在逃避我。

你的问题在你的例子中是没有意义的。

您明确地将Array_1定义为一个区域的单维数组,每个数组都有上限。

 '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 

这给你一维数组的数组元素a的上界。