Я пытаюсь суммировать ячейки в строке в зависимости от периода. Так, например, в период 4 я бы выделил ячейки B2, C2, D2, E2 и F2. Мне нужно, чтобы эта функция «if this then sum this» выполнялась для всех строк, в которые были введены данные. Поскольку у меня может быть более 200 000 строк, использование формулы excel не работает. Результатом суммирования будет соответствующая ячейка в столбце О. Ниже приведена сокращенная версия моего кода (я не считал, что мне нужно опубликовать все 12 периодов).Использование VBA для добавления определенных ячеек в строке в зависимости от значения конкретной ячейки
Когда я запускаю код, я получаю «Range» объекта «Global», и он выделяет, где я указывал диапазон для Chicken. Кроме того, если кто-то знает более чистый способ сделать это, я бы очень признателен.
Sub AddRowsBySelectedPeriodMacro()
Sheets("Blah").Select
Dim LastRow As Long, i As Long, Period As Long, Chicken As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
Period = Range("P2")
For i = 2 To LastRow
If Period = "1" Then
Chicken = Cells(i, 2).Value + Cells(i, 3).Value
ElseIf Period = "2" Then
Chicken = Cells(i, 2).Value + Cells(i, 3).Value + Cells(i, 4).Value
Else: Period = "12"
Chicken = Cells(i, 2).Value + Cells(i, 3).Value + Cells(i, 4).Value + Cells(i, 5).Value + Cells(i, 6).Value + Cells(i, 7).Value + Cells(i, 8).Value + Cells(i, 9).Value + Cells(i, 10).Value + Cells(i, 11).Value + Cells(i, 12).Value + Cells(i, 13).Value + Cells(i, 14).Value
End If
Range("02:O").Value = Chicken
Next i
End Sub
Спасибо Скотту, что исправил мою проблему. Я должен был быть более конкретным, когда я сказал, что он не будет работать в Excel. Я работаю с 250 000 строк. С таким большим количеством данных попытка сделать формулу в каждой соответствующей ячейке замерзает и падает из-за превышения. Но ваше исправление отлично работает! –