2012-06-27 3 views
0

J'essaye de remplir une formule que j'ai dans D1 et de remplir D à la longueur de C. J'utilise la macro suivante et j'obtiens l'erreur suivante - Erreur de compilation: Fin prévue avecAutoFill Macro to Length

Sub Macro3() 

Macro3 Macro 



    Range("D1").Select 
    ActiveCell.FormulaR1C1 = "=RC[-2]*(-1)+RC[-1]" 
    Range("D1").Select 

    Dim LastRow As Long 

    With Sheets("Sheet2") 
    LastRow = Range("C" & Rows.Count).End(xlUp).Row 
    Range("D1").AutoFill Destination:=Range("D2:D" & LastRow) 
End Sub 
+1

Je vais sortir sur un membre ici et dire que l'erreur signifie que vous devez «terminer avec» votre déclaration avec. – gkiar

+0

Je l'ai laissé hors du poste, mettra à jour mais je reçois toujours une erreur –

Répondre

3

Votre problème était simple. Je l'enregistreur de macro pour remplir automatiquement une plage de formule et a constaté que la plage de destination commence par la chaîne de formule, si

Range("D1").AutoFill Destination:=Range("D2:D" & LastRow) 

devrait être:

Range("D1").AutoFill Destination:=Range("D1:D" & LastRow) 

Voici le code de travail, à la fois fixe et nettoyé un peu :)

Sub Macro3() 

With Sheets("Sheet1") 

    Dim LastRow As Long 
    LastRow = Range("C" & Rows.Count).End(xlUp).Row 

    With Range("D1") 
    .FormulaR1C1 = "=RC[-2]*(-1)+RC[-1]" 
    .AutoFill Destination:=Range("D1:D" & LastRow) 
    End With 

End With 

End Sub 
+1

+1 Battez-moi! Bonne note sur l'enregistrement de la macro; c'est un bon moyen de déboguer votre propre code dans tous les cas. – Gaffi