如何定义范围的终点作为数据的最后一行?

我使用vlookup后,查找我使用自动填充。 在macros自动填充代码后,它find范围并自动填充它。 但是就代码的健壮性而言,它并不是有用的,因为它发现的范围会粘到代码上。 基本上,

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],Sheet1!C[-5]:C[4],7,FALSE)" Range("F2").Select Selection.AutoFill Destination:=Range("F2:F502") Range("F2:F502").Select 

是原始代码,我只想做Range(“F2:last data”)

提前致谢

编辑:解决。

 Dim LastRow As Long LastRow = Cells(Rows.Count, "F").End(xlUp).Row Range("F2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],Sheet1!C[-5]:C[4],7,FALSE)" Range("F2").Select Selection.AutoFill Destination:=Range("F2", Cells(LastRow, 6)) 

我试图简化代码,但我想我需要在每个VLOOKUP之前

查找列F中使用的最后一行。

编辑1 :添加LastCol (从本例中的第2行))

 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],Sheet1!C[-5]:C[4],7,FALSE)" Range("F2").Select Dim LastRow As Long Dim LastCol As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, LastCol).End(xlUp).row ' assuming your data starts from row 2 Selection.AutoFill Destination:=Range(Cells(2, LastCol), Cells(LastRow, LastCol)) Range(Cells(2, LastCol), Cells(LastRow, LastCol)).Select 

你需要findRows.Count的最后一行,你可以通过设置你的范围来简化一点,所以你不需要使用Autofill

 Dim MyRange as Range: Set MyRange = Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row) MyRange.FormulaR1C1 = "VLOOKUP(RC[-5],Sheet1!C[-5]:C[4],7,FALSE)" 

此外,你应该尽量避免使用Select 检查在这里