所以我正在开展一个项目,我试图让我的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中的文本值一直向下拉到数据集的末尾。我已经搜索了几个小时试图寻找修复,但似乎无法找到一个试图完成我想要的东西。
答案 0 :(得分:33)
实际上是一个班轮。无需使用.Autofill
Range("M3:M" & LastRow).Formula = "=G3&"",""&L3"
答案 1 :(得分:9)
对于有类似问题的人,找到这篇文章(就像我一样); 如果您的数据集格式化为表格,即使没有lastrow也可以这样做。
Range("tablename[columnname]").Formula = "=G3&"",""&L3"
使它真正成为一个班轮。希望它可以帮助别人!
答案 2 :(得分:9)
或者,您可以使用 FillDown
Range("M3") = "=G3&"",""&L3": Range("M3:M" & LastRow).FillDown
答案 3 :(得分:0)
精彩的回答!我需要填充列中的空单元格,其中单元格中的标题应用于下面的空单元格,直到下一个标题单元格。
我使用上面的代码来开发我的示例表下面的代码。我将此代码应用为宏ctl / shft / D,以快速向下运行复制标题的列。
---示例电子表格------------ Title1被复制到第2行和第3行; Title2被复制到第5行和第6行中它下面的单元格。在第二次运行宏之后,活动单元格是Title3单元格。
' **row** **Column1** **Column2**
' 1 Title1 Data 1 for title 1
' 2 Data 2 for title 1
' 3 Data 3 for title 1
' 4 Title2 Data 1 for title 2
' 5 Data 2 for title 2
' 6 Data 3 for title 2
' 7 Title 3 Data 1 for title 3
----- CopyDown代码----------
Sub CopyDown()
Dim Lastrow As String, FirstRow As String, strtCell As Range
'
' CopyDown Macro
' Copies the current cell to any empty cells below it.
'
' Keyboard Shortcut: Ctrl+Shift+D
'
Set strtCell = ActiveCell
FirstRow = strtCell.Address
' Lastrow is address of the *list* of empty cells
Lastrow = Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Address
' MsgBox Lastrow
Range(Lastrow).Formula = strtCell.Formula
Range(Lastrow).End(xlDown).Select
End Sub