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