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

时间:2014-10-30 17:02:10

标签: arrays excel vba syntax

我曾经将我的数组定义为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的语法正在逃避我。

1 个答案:

答案 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的上限。