在VBA

时间:2016-07-26 16:36:18

标签: vba

我试图找出如何将行(lastUsedRow)填充(或复制?)到最后一行。然而,我发现自己在指定范围方面苦苦挣扎(特别是因为我正在处理不同大小的不同数据集)。

之前

我需要发现lastUsedRowlastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row) - 这是第31行。它指定A列中有数据的最新行。

然后我想告诉VBA填写到最后一行(lastRow) - 第39行 - 可以使用lastRow = .Range("E" & .Rows.Count).End(xlUp).Row找到。它指定E列中有数据的最新行。

enter image description here

之后

enter image description here

问题

VBA建议使用Range().FillDown,但在编码更改数据集时,我很难指定范围。更确切地说,如何写下lastUsedRowlastRow之间的范围?

1 个答案:

答案 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'