我想动态填充一列。但是,使用我现在拥有的VBA代码,该公式将一直填充到最大行数(104万)。我希望它停止在其左侧列中找到的最大行(与手动自动填充相同)
Sub Vlookup()
Range("C2").Select
ActiveCell.FormulaR1C1 =
"=IFERROR(VLOOKUP(RC[-2],'C:\Test.xlsx'!R2C6:R1000C15,10,FALSE),"""")"
Selection.AutoFill Destination:=Range("C2", Range("C2").End(xlDown))
End Sub
我尝试使用
Selection.Autofill Destination :=
Range("C2",Selection.Range("C2").End(xldown))
但这似乎也不起作用
答案 0 :(得分:1)
查找最后一行时,您始终要使用Long
。整数只能达到32,767,并且有超过一百万行。您还应该避免使用Select
。
Dim lastRow as Long
lastRow=Cells(Rows.Count,2).End(xlup).Row
Range("C2").AutoFill Destination:=Range("C2:C" & lastRow)
答案 1 :(得分:0)
首先,您可以获取来自B列的最后一行,并将其用作自动填充的参考。参见下面的示例。
Dim lastRow As Integer
Range("B1").Select
Selection.End(xlDown).Select
lastRow = Selection.Row
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C" & lastRow)