将公式自动填入列的最后一行

我需要不断地在单元格R2开始,并自动将公式填充到列R的最后一行。但是,行数不断变化,因此我需要编写一个可以find最后一行并停在那里的macros。 现在,我的代码将自动填充列R到工作表的末尾(而不是我的数据停止的行)。 如何获得自动填充停止在不再有任何数据的正确的行?

Sub InvoicePrice() Dim Lastrow As Long Lastrow = Range("P" & Rows.Count).End(xlDown).Row Range("R2").Select ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-4]" Selection.AutoFill Destination:=Range("R2:R" & Lastrow) End Sub 

  set r = range("R2") If r.Offset(1, 0) <> "" Then lastRow = r.End(xlDown).row Else lasRow = r.row End If 

试试这个(避免select/激活):

 Dim Lastrow As Long 'Lastrow = Range("P" & Rows.Count).End(xlDown).Row Lastrow=Cells(Rows.Count, "P").End(xlUp).Row Range("R2:R" & Lastrow).FormulaR1C1 = "=RC[-2]/RC[-4]"