Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Vba 宏将VLookUp结果自动填充到最后一个相邻单元格_Vba_Excel_Vlookup_Autofill - Fatal编程技术网

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

Vba 宏将VLookUp结果自动填充到最后一个相邻单元格,vba,excel,vlookup,autofill,Vba,Excel,Vlookup,Autofill,我试图创建一个宏,它将运行vlookup,然后自动填充到包含数据的最后一个相邻单元格。当我最初创建宏时,数据集包含1917行数据,这就是为什么您将继续看到它引用1917。但是,数据集的大小每天都在变化 在达到这一点之前,此特定宏需要执行两个步骤: 将文本转换为列 删除支持报告中提供的不必要列 将标题添加到5列 调整所有列的大小以修复数据 然后它运行第一个vlookup,我需要数据填充到左边的最后一个相邻单元格 然后它运行另一个vlookup,我还需要填充到左边最后一个相邻的单元格 以下是我正在努

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

在达到这一点之前,此特定宏需要执行两个步骤:

  • 将文本转换为列
  • 删除支持报告中提供的不必要列
  • 将标题添加到5列
  • 调整所有列的大小以修复数据
  • 然后它运行第一个
    vlookup
    ,我需要数据填充到左边的最后一个相邻单元格
  • 然后它运行另一个
    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
    

    不需要自动填充。只需找到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
    

    似乎您正在插入一个公式,然后立即用另一个公式替换该公式,该公式不在同一区域内。在选择了“E2”单元格后,看这两行。那么,您想用实际的最后一行号交换1917吗?在这种情况下,你可能想看看这个问题:嗨,斯科特,谢谢你看这个。他们是两个不同的VLookUps。它运行一个vlookup并返回一段数据,然后我需要宏用公式填充列,直到最后一个有数据的单元格。然后它需要执行相同的操作,但返回不同的数据段。我对vlookup本身没有问题。我无法让宏将公式级联到该列中的最后一个单元格,该单元格的数据与itHelo Ralph相邻,谢谢您查看。我相信你的分析是正确的。但是,我不确定如何在不破坏其余编码的情况下实现此更改。