2017-08-25 3 views
1

Ich muss ständig bei Zelle R2 beginnen und eine Formel bis zur letzten Zeile der Spalte R automatisch ausfüllen. Die Anzahl der Zeilen ändert sich jedoch ständig, also brauche ich um ein Makro zu schreiben, das die letzte Zeile findet und dort stoppt. Mein Code, wie er jetzt steht, füllt die Spalte R automatisch mit dem Ende des Arbeitsblatts (nicht mit der Zeile, in der meine Daten enden). Wie bekomme ich die automatische Füllung in der richtigen Zeile, in der keine Daten mehr vorhanden sind?Automatisches Einreichen einer Formel in die letzte Zeile einer Spalte

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 

Antwort

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

Dank Tony, ich sehe keine Formel oder AutoFill-Befehl in Ihrem Code – oryan5000

+0

Ich habe es nicht enthalten, weil Sie bereits .AutoFill in Ihrem Code haben und Sie angegeben, dass das Problem lastRow gefunden wurde. Solange Ihre Daten keine Lücken haben, sollte es gut funktionieren. –

+0

Danke Tony, sehr geschätzt – oryan5000

1

Versuchen Sie, diese (vermeidet select/aktivieren):

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

Vielen Dank, das hat geklappt! – oryan5000

+0

@ oryan5000 Wenn dies Ihr Problem gelöst hat, markieren Sie bitte als akzeptiert, damit diese Frage nicht im offenen Zustand auf unbestimmte Zeit verweilt. – Cyril

Verwandte Themen