如何动态自动填充单元格

时间:2019-05-28 23:35:23

标签: excel vba

我想动态填充一列。但是,使用我现在拥有的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))

但这似乎也不起作用

2 个答案:

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