我正在尝试基于期间对行内的单元格进行求和。因此,例如在第四期我会选择一些细胞B2,C2,D2,E2和F2。我需要这个“如果这然后总结这个”功能运行所有行数据输入。由于我可以有超过200,000行,使用Excel公式不起作用。求和的输出将是O列中的相应单元格。下面是我的代码的缩写版本(我没有想到我需要发布所有12个时期)。使用VBA根据特定单元格的值在一行中添加特定单元格
当我运行代码时,我得到'范围'object'_Global'失败,它突出了我指定鸡的范围。如果有人知道更清洁的方式来做到这一点,我会非常感激。
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行。有了这么多的数据,试图在每个相应的单元格中执行公式会冻结并崩溃excel。但你的修复效果很好! –