如何定义范围的终点作为数据的最后一行?
我使用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
检查在这里