VBA - 从最后一个非空单元格自动填充和增量

时间:2016-09-02 16:58:48

标签: excel vba excel-vba

我有以下代码:

Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("A" & Cells.Rows.Count).End(xlUp).AutoFill Destination:=Range("A2000:A" & lastRow)

工作正常。它找到B列中的最后一个非空单元格,然后开始自动填充A列中的A列到B列中的相关单元格。 但是我需要它从A列中的最后一个非空单元格开始自动填充,即使只有一个空行要自动归档。这很重要,因为通常我在A列和B列之间只有一个空单元格,这意味着可能有其他决定为AutoFillNext或类似。 我试图通过删除单元格号来修改代码,如下所示:

Destination:=Range("A:A" & lastRow)

它没有按预期工作。

1 个答案:

答案 0 :(得分:2)

我倾向于使用Range.FillDown method而不是Range.AutoFill method

Dim lastRow As Long
with activesheet
    lastRow = .Range("B" & .Rows.Count).End(xlUp).Row
    .Range(.Cells(.Rows.Count, "A").End(xlUp), .Cells(lastRow, "A")).FillDown
end with

如果您尝试增加日期值,那么Range.DataSeries会更合适。

Dim lastRow As Long
With ActiveSheet
    lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    With .Range(.Cells(.Rows.Count, "A").End(xlUp), .Cells(lastRow, "A"))
        .DataSeries Rowcol:=xlColumns, Type:=xlChronological, _
                    Date:=xlDay, Step:=1, Trend:=False
    End With
End With