使用dynamic单元格引用将单元格复制到最后一行

我正在使用Find方法来标识已经填充了标题的列。 然后将我的select向下偏移一行并input一个string或一个公式。 然后,我想将我的select粘贴到最后一个填充行。 这实际上只是我正在修复的代码的最后一行的语法。

 Dim i As Integer Dim g As Integer i = 0 g = 0 Dim Rtitles(3) As String Rtitles(0) = "NAME OF M4" Rtitles(1) = "M4 NUMBER" Rtitles(2) = "X-Ref ID" Rtitles(3) = "ADDRESS ID" Range("A1").Select Do Until i = 17 If ActiveCell <> "" Then ActiveCell.Offset(0, 1).Activate i = i + 1 Else ActiveCell = Rtitles(g) g = g + 1 End If Loop 'Determines Last Row Dim LastRow As Long LastRow = ActiveSheet.Cells(1048575, 3).End(xlUp).Row 'This section Populates the Four newly titled columns i = 0 Do Until i = 4 Cells.Find(What:=Rtitles(i), After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(1, 0).Activate [...] If i = 2 Then ActiveCell.FormulaR1C1 = _ "=IF(ISERROR(FIND(""_"",RC[-1])),RC[-1],LEFT(RC[-1],LEN(RC[-1])-3))" Range(ActiveCell).AutoFill Destination:=Range(ActiveCell, Cells(LastRow,activecolumn)) 

这实际上只是我正在修复的代码的最后一行的语法。

没有必要使用自动填充。 您可以一次input整个范围的公式。

更换

 Range(ActiveCell).AutoFill Destination:=Range(ActiveCell, Cells(LastRow,activecolumn)) 

 Dim ColName As String '~~> Gets the Column Letter of active cell ColName = Split(Cells(, ActiveCell.Column).Address, "$")(1) Range(ActiveCell.Address & ":" & ColName & lastrow).Formula = _ Range(ActiveCell.Address).Formula 

编辑

顺便说一句,不要使用LastRow = ActiveSheet.Cells(1048575, 3).End(xlUp).Rowfind最后一行。 一个人不应该硬编码值。 你可能想看看如何find最后一行。

要获得第3列(“C”)的最后一行,请使用:

 LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "C").End(xlUp).Row