首页 > 解决方案 > LastRow 到新的 LastRow VBA

问题描述

我正在尝试创建一个AutoFillLastRow到 new的宏LastRow

我有一个数据集,其中包含从 A 列到 AA 的公式。当我添加一个新的 ID 号(在 D 列中)时,我必须Autofill手动进行。

我过去曾使用以下代码AutoFillLastRow下面的一行到一行:

Dim sourcerange As Range
Set sourcerange = Cells(Rows.Count, 2).End(xlUp).Resize(1, 26)
sourcerange.AutoFill Destination:=sourcerange.Resize(rowsize:=2)

但是,它可以使我添加多个 ID 号。因此,我需要一个从LastRow(可以在 A 列中检测到)到LastRow Offset (1)D 列中的(新)的宏

标签: excelvba

解决方案


只需确定NewLastRowD 列中的并计算RowSize:=NewLastRow - SourceRange.Row + 1

Dim SourceRange As Range
Set SourceRange = Cells(Rows.Count, 2).End(xlUp).Resize(1, 26)

Dim NewLastRow As Long 'get new last row in column D
NewLastRow = Cells(Rows.Count, "D").End(xlUp).Row

SourceRange.AutoFill Destination:=SourceRange.Resize(RowSize:=NewLastRow - SourceRange.Row + 1)

请注意,您说“可以在 A 列中检测到”但是……</p>

Set SourceRange = Cells(Rows.Count, 2).End(xlUp)

... 检测到第 2 列,即 B 列!
如果您想在 A 列而不是 B 列上进行检测,则必须使用 ...</p>

Set SourceRange = Cells(Rows.Count, "A").End(xlUp).Offset(ColumnOffset:=1).Resize(1, 26)

推荐阅读