Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何将范围的端点定义为包含数据的最后一行?_Excel_Vba_Range_Vlookup - Fatal编程技术网

Excel 如何将范围的端点定义为包含数据的最后一行?

Excel 如何将范围的端点定义为包含数据的最后一行?,excel,vba,range,vlookup,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") R

我正在使用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
是原始代码,我只想做RangeF2:最后的数据

提前谢谢

编辑:已解决

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:在本例第2行中添加了LastCol

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

您需要找到最后一行的行数。计数,您可以通过设置范围来简化,这样就不需要使用自动填充:


另外,您应该尽量避免使用Select

谢谢您的回复,因为找到了最后一行,我怎样才能自动实现F部件。因为数据实在太大了,它实际上并没有自动化F,为了自动化,代码中不应该有任何F。使用此代码时,它甚至不能用于自动填充。但是谢谢你的努力和支持time@hakandeep当F列中有数据时,它工作,不是吗?单元格和最后一行不工作。最后一行为1。感谢您的回复,但我需要使用select。因为数据是从一张图纸传输到另一张图纸的,我使用的是End属性。我也没有太多时间,所以通常我使用宏录制,并试图通过修改来增加代码的灵活性。此外,我认为该代码遗漏了公式中不断变化的单元格,因为它搜索C2、C3,……而且该代码仅将F2和F3打印为vlookup名称。应从第1页的F列到第2页的F列的vlookup中获取数据。我放置了sheet1.range=F2:F,但我认为这部分不起作用。这是我的全部问题。我希望它从F2到包含数据的最后一行
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)"