2015-07-16 6 views
2

Я пытаюсь найти простое решение для автозаполнения, чтобы скопировать формулу в ячейку C3 в C2 после того, как была вставлена ​​новая строка. Вот что у меня есть, что я думал, что будет работать:VBA Macro для автозаполнения ячейки

Sub AutoFill() 
    Set SourceRange = Worksheets("Sheet 1").Range("C3") 
    Set fillRange = Worksheets("Sheet 1").Range("C2") 
    SourceRange.AutoFill Destination:=fillRange 
End Sub 

В основном, в С3 (и каждая ячейка в столбце C после строки 3) имеет среднюю функцию, которая принимает предыдущие 20 дней, и создает в среднем. Я пытаюсь заставить макрос вводить эту формулу каждый раз, когда вводится новая строка (у меня есть код для ввода новой строки, в которую она просто не будет применена функция после ввода новой строки)

ответ

1

ячейки, которые должны быть заполнены. Пункт назначения должен включать исходный диапазон.

Как указано из MSDN.

Так попробуйте:

Set SourceRange = Worksheets("Sheet 1").Range("C3") 
Set fillRange = Worksheets("Sheet 1").Range("C2") 
SourceRange.AutoFill Destination:=Range(fillRange, SourceRange) 

Еще одно замечание заключается в использовании именованных диапазонов при вставке строк между ними.

+0

Это отлично работает. Благодарим вас за ссылку на MSDN. –

+0

Кроме того, я получил этот код из MSDN, изначально исключающий его, не был (fillrange, SourceRange) ', который, похоже, был исправлен –

1

Другие способы получения формул с обновленной клеткой ссылки

Option Explicit 

Public Sub getFormula() 
    With Sheet1 
     .Range("C3").Copy 
     .Range("C2").PasteSpecial xlPasteFormulas 

     If .ListObjects.Count = 1 Then 
      With .ListObjects(1)  'for tables 
       .Cells(2, 3).Formula = .Cells(3, 3).Formula 
      End With 
     End If 
    End With 
End Sub 

.

Кроме того, вы не должны использовать имя метода VBA как к югу от имени (Автозаполнение)

  • быстрый способ определения VBA ключевых слов: нажмите на вспомогательном имя и нажмите клавишу F1

    Если страница помощи показывает Ключевое слово не найдено ваше имя должно быть суб Ok

+0

Он работает, чтобы скопировать формулу в ячейку, однако он использует те же ссылки на ячейки, что и формулу ниже вместо обновления до нового диапазона. То есть Ячейка ниже имеет формулу, которая является «Средняя (C3: C22)», и одна из них, необходимая для изменения к той же формуле excep, будет «Средняя (C2: 21)» –

Смежные вопросы