Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Действия на каждом листе в книге, На каждом листе в активной книге необходимо прописать формулы
 
Добрый день. Не могу решить задачку.
На каждом листе необходимо прописать формулы(вариант с выделением всех листов не подходит). Каждый раз кол-во листов будет разным от 5 до 200
Подскажите в чём может быть проблема
Прикрепляю файл с макросом который пытаюсь заставить работать.

P.S. Я смотрел темы с похожими задачами, подстраивал под свой макрос, но у меня всё равно считает только на одном листе. Раз за разом.

Формула работает для файла "Книга1", но не работает если что то посложнее. Как во втором файле "Отчёт ОЛ"
Изменено: Kompas13 - 17 апр 2019 16:02:01
 
Код
Sub WorksheetLoop2()
    Dim Current As Worksheet
    For Each Current In Worksheets
        With Current
            .Range("A20:B20").FormulaR1C1 = "=AVERAGE(R[-18]C:R[-2]C)"
            .Range("A21:B21").FormulaR1C1 = "=SUM(R[-19]C:R[-3]C)"
        End With
    Next
End Sub
П.С. Вставлять формулы макросом не наш метод ;) . Считайте все в коде макроса, а на лист вставляйте готовый результат
Согласие есть продукт при полном непротивлении сторон.
 
Я ещё только учусь с этим работать) По этому так кривовато.

А если нужно вставить функцию  в таблицу на листе?
На каждом листе есть своя таблица. Нужно в первую ячейку в нужный столбец вставить формулу.
Изменено: Kompas13 - 17 апр 2019 13:24:47
 
Цитата
Kompas13 написал: По этому так кривовато
Дело не в 'кривовато', все мы когда-то учились. Я про принцип, подход к решению задачи. А если Вам потребуется вставлять формулу не в 20ю строку будете код переписывать? А если формула будет 'многоэтажная'? И, кстати, не все формулы (даже записанные макрорекордером) напрямую можно вставлять кодом на лист. Ну это так, в качестве подсказки
Согласие есть продукт при полном непротивлении сторон.
 
Kompas13, можно без цикла :)
Код
Sub Макрос1()
    Worksheets.Select
    Range("A20:B20").Select
    Selection.FormulaR1C1 = "=AVERAGE(R[-18]C:R[-2]C)"
    Range("A21:B21").Select
    Selection.FormulaR1C1 = "=SUM(R[-19]C:R[-3]C)"
    Worksheets(1).Select
End Sub
 
Ага, спасибо заработало.
Страницы: 1
Читают тему (гостей: 3)
Наверх