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

时间:2016-07-29 08:31:19

标签: excel vba range vlookup

我正在使用vlookup,在查找后我使用自动填充。在自动填充代码后的宏中,它找到范围并自动填充它。但是就代码的健壮性而言,它没有用,因为它找到的范围坚持代码。基本上,

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

是原始代码,我只想做范围(" F2:最后数据")

提前致谢

编辑:已解决。

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之前放置它

2 个答案:

答案 0 :(得分:0)

查找列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

答案 1 :(得分:0)

您需要找到Rows.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 Check here