自动填充不会从所需的单元格开始,也不会填满

时间:2018-05-31 14:21:40

标签: vba excel-vba excel

我正在尝试将此公式从AD2自动填充到数据集的末尾。但是,相反,我的宏将使用AD1上的公式(列标题)而不是填充。我已经好几次了,但我无法弄清楚为什么它现在正在表现。令人讨厌的公式是从单元格中读取几列(AB),然后声明三个字符串中的一个。

FrameLayout

2 个答案:

答案 0 :(得分:2)

尝试使用ActiveSheet.Cells(ActiveSheet.Rows.Count, "AB").End(xlUp).Row

修改var lastRow
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