2012-06-27 5 views
0

Я пытаюсь заполнить формулу, которая у меня есть в D1, и заполнить D до длины C. Я использую макрос follwing, и я получаю следующую ошибку: Compile Error: Ожидаемый конец сAutoFill 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

Я собираюсь выйти на конечность здесь и сказать, что ошибка означает, что вам нужно «закончить» своим заявлением 'с'. – gkiar

+0

Я оставил это сообщение, будет обновляться, но я все равно получаю сообщение об ошибке –

ответ

3

Ваша проблема была простой. Я использовал запись макросов для АВТОЗАПОЛНЕНИЯ Выбора диапазона формул и обнаружил, что диапазон назначения начинается с хребтом Формулы, так

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

Должен быть:

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

Вот рабочий код, как фиксированный, так и очищена немного :)

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 Ударьте меня! Хорошая заметка о записи макроса; это хороший способ отладить ваш собственный код в любом случае. – Gaffi