基于动态范围的Excel VBA自动填充

时间:2018-12-13 11:55:36

标签: excel vba

请您提供以下帮助;我在A1中列出的工作人员列表越来越多,我希望我的E1,F1,G1等公式自动填充,并且不像现在一样是静态的。

我有以下内容,但引发了错误:对象'_Global'的方法'Range'失败

我的vba代码;

Sub AutoFill()

    Dim RowCount As Variant

    RowCount = Range(("A1"), Range("A1").End(xlDown)).Rows.Count
    Range("E1").Select ' Default formula's in E1
    Selection.AutoFill Destination:=Range(RowCount - 1), Type:=xlFillDefault

End Sub

我想念的是什么,我很困惑,从昨天开始就一直...

谢谢。

1 个答案:

答案 0 :(得分:1)

Range.FillDown method方法可能更易于编码。

Sub DynAutoFill()

    Dim lastRow As long

    lastRow = cells(rows.count, "A").end(xlup).row  'should -1 be added here?
    Range(cells(1, "E"), cells(lastRow, "E")).filldown

End Sub

FillDown可以轻松处理多个列。

Sub DynAutoFill()

    Dim lastRow As long

    lastRow = cells(rows.count, "A").end(xlup).row  'should -1 be added here?
    Range(cells(1, "E"), cells(lastRow, "G")).filldown

End Sub

您自己的代码需要整个范围作为目的地。

Sub DynAutoFill()

    Dim RowCount As Variant

    RowCount = Range(("A1"), Range("A1").End(xlDown)).Rows.Count
    Range("E1").AutoFill Destination:=Range(cells(1, "E", cells(RowCount - 1, "E")), Type:=xlFillDefault

End Sub

我不会在子过程的名称中使用保留字。