2017-08-25 7 views
1

常にセルR2で開始し、列Rの最後の行まで式を自動入力する必要があります。ただし、行の数は常に変化しています最後の行を見つけてそこで停止するマクロを書きます。私のコードは、現状のように、列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 

答えて

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

ありがとうTonyさん、あなたのコードに式やオートフィルのコマンドがありません – oryan5000

+0

あなたのコードに既に.autoFillがあり、問題がlastRowを見つけていることを示しているので、私はそれを含めませんでした。データにギャップがない限り、正常に動作するはずです。 –

+0

ありがとうトニー、大変感謝しています – oryan5000

1

(アクティブ/選択を回避し)、これを試してみてください:

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]" 
+0

おかげでそんなに、これは働いていました! – oryan5000

+0

@ oryan5000これで問題が解決した場合は、受け入れ済みとしてマークしてください。この質問が開いた状態で無期限に残りません。 – Cyril

関連する問題