用连续的整数填充数组

时间:2009-09-18 17:51:19

标签: excel vba excel-vba

我正在尝试使用Excel和VBA将连续整数填充到数组以传递给Subtotal函数。我需要一个动态大小的连续int数组。例如,当我使用Array(1,2,3,4,5)时,函数会起作用,但如果我尝试使用动态大小的数组则不行。

我已经阅读了一些关于此的文章,但没有一篇真正奏效 - 还有其他人试过吗?

3 个答案:

答案 0 :(得分:1)

我假设您的意思是小计方法。这对我有用,你必须将它与你正在做的事情进行比较。

Sub Macro1()

    Dim aConsec() As Long
    Dim i As Long

    ReDim aConsec(1 To 2)

    For i = 1 To 2
        aConsec(i) = i
    Next i

    Selection.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=aConsec, _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True

End Sub

答案 1 :(得分:0)

不要使用动态数组...尝试使用arraylist或类似的东西

如果已满,则调整它们的大小是非常昂贵的操作

如果你知道你需要多少个emelemts,请从一开始就调整它。

在不使用阵列的情况下,也可以累计连续数字......

答案 2 :(得分:0)

如果您想要从N到M的范围之和,请使用以下公式:

(M *((M + 1)/ 2)) - ((N-1)*(N / 2))