我只想选择从B到Z的最后一行(这是其中唯一包含公式的行。) 该范围应仅自动向下填充一行,并仅使倒数第二个值(意味着删除公式)。因此,最后一行应始终包含公式。
看起来像这样的数据集:
A B C ..... Z
1 1 2 2 ......26
2 1 2 2 ......26
3 1 2 2 ......26
4 1 2 2 ......26
5 1 2 2 ......26
因此代码应从B5:Z5中选择并自动填充一行。
我尝试了以下代码,它给了我运行时错误。
Sub autofilllastrow()
Dim Lastrow As Integer
Dim Lastrange As Range
Lastrow = ActiveWorkbook.Worksheets("sheet1").Cells(Rows.Count, 2).End(xlUp).Row
Range("B" & Lastrow, "Z" & Lastrow).Select
Lastrange.AutoFill Destination:=Range("B" & Lastrow + 1, "Z" & Lastrow + 1)
End Sub
如何正确定义“目标”部分并仅使倒数第二行的值正确?
答案 0 :(得分:1)
Sub autofilllastrow()
Dim lr As Long
With ThisWorkbook.Worksheets("Sheet1")
lr = .Cells(.Rows.Count, 2).End(xlUp).Row
.Range(.Cells(lr + 1, 2), .Cells(lr + 1, 26)).FillDown
.Range(.Cells(lr, 2), .Cells(lr, 26)).Value = .Range(.Cells(lr, 2), .Cells(lr, 26)).Value
End With
End Sub
.Select
Long
数据类型代替Integer
FillDown
而非AutoFill
或者如果您想设置Range
变量,
Sub autofilllastrow()
Dim lr As Long, rng As Range
With ThisWorkbook.Worksheets("Sheet1")
lr = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rng = .Range(.Cells(lr, 2), .Cells(lr, 26))
rng.Offset(1).FillDown
rng.Value = rng.Value
End With
End Sub