使用命名范围和LastRow自动填充目标

时间:2016-02-26 15:24:23

标签: excel vba

我正在尝试从命名范围Range("Home_Email_1").Offset(1, -1)的偏移量自动填充,直到先前声明的LastRow

我无法弄清楚从命名单元格到最后一行自动填充的语法是什么。

如果不使用Select,我无法解决这个问题。我可以使用select来做我想做的事情,输入一段代码来选择我想要的单元格,然后放入一行:

Selection.AutoFill Destination:=ActiveCell.Range("A1:A" & LastRow)

这是我到目前为止的代码:

Sub Tidy_Emails_tester()
    ActiveWorkbook.ActiveSheet.Rows(1).Find("Home Email 1").Name = "Home_Email_1"
    Range("Home_Email_1").EntireColumn.Insert

    Range("Home_Email_1").Offset(, -1).FormulaR1C1 = "Suggested Email"
    Dim LastRow As Long
    LastRow = Range("A" & Rows.Count).End(xlUp).Row
    Range("Home_Email_1").Offset(1, -1).FormulaR1C1 = _
        "=IF(RC[2],RC[1],IF(RC[4],RC[3],IF(RC[6],RC[5],IF(RC[8],RC[7],IF(RC[1]<>"""",RC[1],IF(RC[3]<>"""",RC[3],IF(RC[5]<>"""",RC[5],IF(RC[7]<>"""",RC[7],IF(RC[9]<>"""",RC[9],"""")))))))))"

    Range("Home_Email_1").Offset(1, -1).AutoFill Destination:=Range("Home_Email_1").Offset(1, -1). & LastRow
End Sub

感谢您提供任何帮助,无需选择即可完成此项工作。

干杯

1 个答案:

答案 0 :(得分:0)

您可以使用.FillDown method填写公式。

 Range("Home_Email_1", Cells(LastRow, Range("Home_Email_1").Column)).FillDown

我们使用.Cells property构建.Range对象,我们希望将该公式填充下来。