我有以下代码:
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)
它没有按预期工作。
答案 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