我正在尝试使用Excel和VBA将连续整数填充到数组以传递给Subtotal函数。我需要一个动态大小的连续int数组。例如,当我使用Array(1,2,3,4,5)时,函数会起作用,但如果我尝试使用动态大小的数组则不行。
我已经阅读了一些关于此的文章,但没有一篇真正奏效 - 还有其他人试过吗?
答案 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))