Заполнить массив последовательными целыми числами - PullRequest
1 голос
/ 18 сентября 2009

Я пытаюсь заполнить массив последовательными целыми числами, используя Excel и VBA, чтобы перейти к функции Итого. Мне нужен динамически изменяемый массив последовательных целых. Функция работает, когда я использую Array (1,2,3,4,5), например, но не если я пытаюсь использовать динамически изменяемый массив.

Я читал несколько статей на эту тему, но на самом деле ни одна из них не сработала - кто-нибудь еще пробовал это?

Ответы [ 3 ]

1 голос
/ 18 сентября 2009

Полагаю, вы имеете в виду метод промежуточных итогов. Это работает для меня, вам придется сравнить это с тем, что вы делаете.

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
0 голосов
/ 18 сентября 2009

Если вы хотите получить сумму в диапазоне от N до M, используйте следующую формулу:

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

0 голосов
/ 18 сентября 2009

Не используйте динамические массивы ... Попробуйте использовать массив или что-то в этом роде

Изменение их размера при заполнении - очень дорогая операция

Если вы знаете, сколько нужно эмелемтов, измерьте его с самого начала.

Также возможно суммирование последовательных чисел без использования массива вообще ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...