首页 文章

如何让VLOOKUP选择到VBA中的最低行?

提问于
浏览
0

希望在单元格中自动插入VLOOKUP公式 . 录制宏时,我指示它使用相同的公式填充下面的列 . 工作得很好,但是,当VLOOKUP搜索的表发生更改时(或多或少的行)存在问题 .

在记录时,VLOOKUP下降到表格中的最后一行(273) . 但是,我想设置它以便它将下到最后一行 . 这意味着我可以在不同行数的表上运行脚本 .

选定的列将保持不变 .

Range("AJ2").Select
ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-20], Previous!R2C2:R273C22,17,FALSE)"

2 回答

  • 1

    试试这个:

    With Worksheets("Previous")
        Range("AJ2").FormulaR1C1 = _
            "=VLOOKUP(RC[-20], Previous!R2C2:R" & .Cells(.Rows.Count, 2).End(xlUp).Row & "C22,17,FALSE)"
    End With
    

    哪里:

    • Range("AJ2")

    将隐式引用ActiveSheet

    • .Cells(.Rows.Count, 2).End(xlUp).Row

    将引用"Previous"工作表,位于 With Worksheets("Previous")- End With 块内

  • 1

    @nbayly说,这个帖子很多 . 事实上,我在此之前提供了一个答案:

    How to Replace RC Formula Value with Variable

    以下是动态范围的略微修改,这是我相信你正在寻找的

    For j = n To 10 Step -1
        If Cells(j, 1).Value = "" Then
            Cells(j, 1).Formula = "=VLookup(RC20,Previous!R2C2:R273C22,17,FALSE)"
        End If
    Next j
    

    记得将j定义为long和 n=sheets("sheetname)".cells(rows.count,1).end(xlup).row

    j = n to 10 with the starting row number 取代10

相关问题