宏自动向下填充VLookUp结果向下到最后一个相邻单元格

时间:2015-09-25 15:39:34

标签: excel vba excel-vba vlookup autofill

我正在尝试创建一个运行vlookup的宏,然后自动填充到包含数据的最后一个相邻单元格。当我最初创建宏时,数据集包含1917行数据,这就是为什么您将继续看到它引用1917。但是,数据集的大小每天都不同。

在达到这一点之前,这个特殊的宏需要几个步骤:

  1. 将文字转换为列
  2. 删除支持报告中提供的不必要的列
  3. 将标题添加到5列
  4. 调整所有列的大小以修复数据
  5. 然后它运行第一个vlookup,我需要将数据填充到左边的最后一个相邻单元格
  6. 然后它运行另一个vlookup我需要填写到左边最后一个相邻的单元格
  7. 以下是我正在努力解决的两个vlookup的代码:

    Range("E2").Select
    ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(RC[-4],'CURRENT DAY'!R[-1]C[-4]:R[2498]C[1],5,0)"
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],'CURRENT DAY'!R1C1:R2500C6,5,0)"
    Range("E2").Select
    Selection.AutoFill Destination:=Range("E2:E1917")
    Range("E2:E1917").Select
    Columns("E:E").EntireColumn.AutoFit
    Range("F2").Select
    ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(RC[-5],'CURRENT DAY'!R[-1]C[-5]:R[2498]C,6,0)"
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],'CURRENT DAY'!R1C1:R2500C6,6,0)"
    Range("F2").Select
    Selection.AutoFill Destination:=Range("F2:F1917")
    Range("F2:F1917").Select
    

1 个答案:

答案 0 :(得分:0)

无需自动填充。只需找到A列中的最后一行,并使用它来表示放置r1c1公式的范围

Dim lastrow As Long
lastrow = Range("A2").End(xlDown).Row

Range("E2:E" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-4],'CURRENT DAY'!R1C1:R2500C6,5,0)"

Range("F2:F" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-5],'CURRENT DAY'!R1C1:R2500C6,6,0)"

Columns("E:F").EntireColumn.AutoFit