尝试将整个列中的公式复制到相邻列中的最后一行数据

我是一个新的VBA用户,我尝试创build一个VBA代码,将整个列中的单个Vlookup公式复制到相邻列中的最后一行数据。 我不想指定一个特定的范围,因为我打算使用这个macros具有不同的行范围的多个不同的文件,所以我正在寻找一个代码,将简单地复制到相邻列中的最后一个值。

我曾尝试在本网站上查看其他类似的问题和答案,但没有发现我的解决scheme已经工作,我真的很感谢一些帮助!

这是我现在有的代码:

' Section5 Macro ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[6],'[PERSONAL.XLSB]Task and Sections'!R2C1:R254C2,2,FALSE)" Range("C2").Select Selection.Copy 'Copy Vlookup Formula Dim lastRow As Long lastRow = Range("B" & Rows.Count).End(xlUp).Row Range("C3").AutoFill destination:=Range("C3:C" & lastRow) 'Specify range for Column C based off of row count in Column B Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'Paste Vlookup equation down the column End Sub 

我要复制的公式是“= VLOOKUP(RC [6],'[PERSONAL.XLSB]任务和部分!R2C1:R254C2,2,FALSE”。我想要复制这个公式的列是列C除了头是C1以外的所有行中)我想要参考的行长是相邻列B.

目前我收到一个错误,说:“编译错误:命名参数未find”。

任何帮助将不胜感激!

谢谢,

正如在评论中指出的,你有一个简单的错字(“desination”)…然而,即使这是固定的,你的代码似乎并没有工作。 有一个更简单的方法。 尝试这个:

 Sub FillWithFormula() Dim lastRow As Long lastRow = Range("B" & Rows.Count).End(xlUp).Row Range("C2:C" & lastRow).FormulaLocal = "=B2*2" End Sub 

请注意,我用一个简单的(独立于外部数据)replace了你的公式,所以我可以validation例程的工作原理。

这里。

 Sub thing() Dim lastRow As Long lastRow = Cells(Rows.Count, 2).End(xlUp).Row Range("C3:C" & lastRow).FormulaR1C1 = "=VLOOKUP(RC[6],'[PERSONAL.XLSB]Task and Sections'!R2C1:R254C2,2,FALSE)" Range("C3:C" & lastRow).Value = Range("C3:C" & lastRow).Value End Sub 

更简单,更优雅。 互联网上没有这样的事情像百万次这样被解决了吗? 无论如何,复制粘贴是你在macros中可以做的最慢的事情。 躲开它。 只需将范围的值设置为范围的值即可。 🙂

另外,您可以将公式分配到整个范围。