У меня есть еженедельная задача, в которой мне нужно обновить отчет (в настоящее время чуть более 50 тысяч строк), который каждую неделю увеличивается примерно на 500 строк. После того, как новые данные добавлены вручную, я запускаю приведенный ниже код, чтобы выполнить Sumifs()
для суммирования данных.
Структура данных следующая: столбцы от A до C являются столбцами критериев (числово-буквенно-цифровые), столбец D содержит количество для суммирования (целые числа). Данные являются смежными. Мой макрос помещает формулу Sumifs()
в столбец E — перезаписывая то, что там есть.
У меня вопрос: можно ли выполнить эту задачу быстрее? В настоящее время мне требуется чуть больше минуты, чтобы запустить макрос, но это время увеличивается по мере роста данных.
На этом сайте много информации об использовании массивов для более быстрого выполнения задач, но ни один из примеров не имеет для меня особого смысла, и я бы предпочел не использовать их, если это возможно.
Sub MySumIfs()
Dim LastRow As Long
LastRow = Sheet1.Range("A1").End(xlDown).Row
With Sheet1.Range("E2:E" & LastRow)
.FormulaR1C1 = "=sumifs(R2C4:R" & LastRow & "C4, R2C1:R" & LastRow & "C1, RC1, R2C2:R" & LastRow & "C2, RC2, R2C3:R" & LastRow & "C3, RC3)"
.Value = .Value
End With
End Sub