我试图找出如何填充(或复制?)一行(lastUsedRow
)直到最后一行。然而,我发现自己在指定范围方面遇到了困难(特别是因为我正在处理具有不同大小的不同数据集)。
Before
我需要找出lastUsedRow
(lastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row
) - 这里是第 31 行。它指定 A 列中有数据的最新行。
然后我想告诉 VBA 向下填充直到最后一行(lastRow
) - 第 39 行 - 可以使用以下命令找到lastRow = .Range("E" & .Rows.Count).End(xlUp).Row
。它指定 E 列中有数据的最新行。
After
Question
VBA 建议使用Range().FillDown
但在为不断变化的数据集进行编码时,我很难指定范围。更准确地说,如何写下介于lastUsedRow
and lastRow
?
我认为您想要填写 A 至 D 列,从lastUsedRow
(从A列定义)到lastRow
(从 Col M 定义),使用来自lastUsedRow
在 A:D 列中。
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
method:
srcRange.Copy Destination:=fillRange
注意:+1 给您使用 See找到“最后一行”的正确方法 https://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)