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) 

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

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

它没有按预期工作。

我倾向于使用Range.FillDown方法而不是Range.AutoFill方法 。

 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 

如果你想增加一个date值,那么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