VBA填写公式直到最后一列

所以我正在开发一个项目,并且试图让我的VBA代码将单元格M3中的公式一直拖到数据集的末尾。 我使用列L作为我的基础来确定数据的最后一个单元格是什么。 我的公式是两个单元格之间的文本逗号串联。 所以在Excel中,我的公式是= G3&“,”&L3

我希望excel可以画出这个公式,所以在M4单元格中它将是= G4&“,”&L4单元格M5将= G5&“,”&L5等等。

我的代码如下所示:

Range("$M$3").Formula = Range("G3") & (",") & Range("L3") Dim Lastrow As Long Application.ScreenUpdating = False Lastrow = Range("L" & Rows.Count).End(xlUp).Row Range("M4").FormulaR1C1 = Range("G4") & (",") & Range("L4") Range("M4").AutoFill Destination:=Range("M4:M" & Lastrow) ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True 

我的输出只是将单元格M3中的文本值一直下拉到数据集的末尾。 我search了几个小时试图寻找修复,但似乎无法find一个正在努力完成我要去的东西。

这实际上是一个单线程。 无需使用.Autofill

 Range("M3:M" & LastRow).Formula = "=G3&"",""&L3" 

对于有类似问题的人来说,find这个post(就像我做的那样); 如果你的数据集被格式化为一个表,你甚至可以做到这一点,即使没有lastrow。

 Range("tablename[columnname]").Formula = "=G3&"",""&L3" 

使其成为一个真正的class轮。 希望它可以帮助别人!

或者,您可以使用FillDown

 Range("M3") = "=G3&"",""&L3": Range("M3:M" & LastRow).FillDown