我试图找出如何将行(lastUsedRow
)填充(或复制?)到最后一行。然而,我发现自己在指定范围方面苦苦挣扎(特别是因为我正在处理不同大小的不同数据集)。
之前
我需要发现lastUsedRow
(lastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row
) - 这是第31行。它指定A列中有数据的最新行。
然后我想告诉VBA填写到最后一行(lastRow
) - 第39行 - 可以使用lastRow = .Range("E" & .Rows.Count).End(xlUp).Row
找到。它指定E列中有数据的最新行。
之后
问题
VBA建议使用Range().FillDown
,但在编码更改数据集时,我很难指定范围。更确切地说,如何写下lastUsedRow
和lastRow
之间的范围?
答案 0 :(得分:2)
我认为您要使用{{1}中的值填充列A到D,从lastUsedRow
(从Col A定义)到lastRow
(从Col M定义)在A列中:D。
lastUsedRow
如果您需要保留格式,请使用Dim lastRow as Long, lastUsedRow as Long
Dim srcRange as Range, fillRange as Range
With Worksheets("Sheet1")
lastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row
lastRow = .Range("M" & .Rows.Count).End(xlUp).Row
' Fill values from A:D all the way down to lastUsedRow
Set srcRange = .Range("A" & lastUsedRow & ":D" & lastUsedRow)
Set fillRange = .Range("A" & lastRow & ":D" & lastUsedRow)
fillRange.Value = srcRange.Value
End With
方法:
Copy
注意:+1使用时请参阅correct way to find the 'last row'