我正在尝试将此公式从AD2自动填充到数据集的末尾。但是,相反,我的宏将使用AD1上的公式(列标题)而不是填充。我已经好几次了,但我无法弄清楚为什么它现在正在表现。令人讨厌的公式是从单元格中读取几列(AB),然后声明三个字符串中的一个。
FrameLayout
答案 0 :(得分:2)
尝试使用ActiveSheet.Cells(ActiveSheet.Rows.Count, "AB").End(xlUp).Row
Sub test()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "AB").End(xlUp).Row
Range("AD2").Select
Selection.FormulaR1C1 = _
"=IF(NOT(ISERROR(FIND(""iMac"",RC[-2]))),""iMac"",IF(NOT(ISERROR(FIND(""MacBook"",R[-21]C[-2]))),""MacBook"",""N/A""))"
Range("AD2").Select
Selection.AutoFill Destination:=Range("AD2:AD" & lastRow)
End Sub
答案 1 :(得分:0)
试试这个。您缺少单元格中的列(我已使用A列进行更改以适应)并且您不需要选择任何内容。事实上,您可能根本不需要自动填充,只需一次性应用于整个范围。
Sub y()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
With Range("AD2")
.FormulaR1C1 = _
"=IF(NOT(ISERROR(FIND(""iMac"",RC[-2]))),""iMac"",IF(NOT(ISERROR(FIND(""MacBook"",R[-21]C[-2]))),""MacBook"",""N/A""))"
.AutoFill Destination:=Range("AD2:AD" & lastRow)
End With
End Sub