如何使用VBA自动填充到最后一行数据?

时间:2019-01-17 00:43:45

标签: excel vba

我选择两列并在其中添加一个公式。然后,我希望自动填充到最后一行。但是,每周相同的数据集都会获得更多的行,并且我不知道如何自动填充它,以便转到最后一行。目前,我有它可以自动填充到第5000行,但是会产生异常。我如何才能使自己拥有的公式自动填充到最后一行?

Range("BG1").Select
ActiveCell.FormulaR1C1 = "Total_Time_Spent (Dev)"
Range("BG2").Select
Application.WindowState = xlNormal
ActiveCell.FormulaR1C1 = _
    "=IF(RC[-47]=R[-1]C[-47],SUMIF(C[-47], RC[-47], C[-20]), SUMIF(C[-47], RC[-47], C[-20]))"
Range("BG2").Select
Selection.AutoFill Destination:=Range("BG2:BG5000")
Range("BG2:BG2108").Select
Range("BH2").Select
ActiveCell.FormulaR1C1 = _
    "=IF(RC[-48]=R[-1]C[-48],SUMIF(C[-48], RC[-48], C[-20]),SUMIF(C[-48], RC[-48], C[-20]))"
Range("BH2").Select
Selection.AutoFill Destination:=Range("BH2:BH5000")
Range("BH2:BH2108").Select
Range("BH1").Select
ActiveCell.FormulaR1C1 = "Total_Time_Spent (UAT)"

1 个答案:

答案 0 :(得分:0)

更容易一次将公式写到整个范围

Sub Demo
    Dim lr as Long

    With ActiveSheet
        lr  = .Cells(.Rows.Count, 1).End(xlUp).Row ' adjust to a column that can identify the last data row

        .Range("BG2:BG" & lr).FormulaR1C1 = _
          "=IF(RC[-47]=R[-1]C[-47],SUMIF(C[-47], RC[-47], C[-20]), SUMIF(C[-47], RC[-47], C[-20]))"

        ' etc

    End With
End Sub