我正在使用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之前放置它
答案 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