I am using the Find
method to identify columns which have been populated with headers. Then offsetting my selection down one row and entering either a string or a formula. Then I want to paste my selection down the column to the Last populated row. It's really just the syntax of the last line of the code I'm looking to repair.
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))
答案 0 :(得分:1)
它实际上只是我希望修复的代码最后一行的语法。
无需使用自动填充功能。您可以一次性输入整个范围内的公式。
替换
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
修改强>
BTW不要使用LastRow = ActiveSheet.Cells(1048575, 3).End(xlUp).Row
来查找最后一行。永远不应该硬编码值。您可能希望查看有关如何查找最后一行的THIS。
答案 1 :(得分:0)
要获取第3列中的最后一行(&#34; C&#34;),请使用:
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "C").End(xlUp).Row