VBA Excel. Вставка формулы в ячейку

    Вставка формулы со ссылками в стиле A1 и R1C1 в ячейку (диапазон) из кода VBA Excel. Свойства Range.FormulaLocal и Range.FormulaR1C1Local.

    Свойство Range.FormulaLocal

    FormulaLocal — это свойство объекта Range, которое возвращает или задает формулу на языке пользователя, используя ссылки в стиле A1.

    В качестве примера будем использовать диапазон A1:E10, заполненный числами, которые необходимо сложить построчно и результат отобразить в столбце F:

    Примеры вставки формул суммирования в ячейку F1:

    Пример вставки формул суммирования со ссылками в стиле A1 в диапазон F1:F10:

    В этой статье я не рассматриваю свойство Range.Formula, но если вы решите его применить для вставки формулы в ячейку, используйте англоязычные функции, а в качестве разделителей аргументов — запятые (,) вместо точек с запятой (;):

    После вставки формула автоматически преобразуется в локальную (на языке пользователя).

    Свойство Range.FormulaR1C1Local

    FormulaR1C1Local — это свойство объекта Range, которое возвращает или задает формулу на языке пользователя, используя ссылки в стиле R1C1.

    Формулы со ссылками в стиле R1C1 можно вставлять в ячейки рабочей книги Excel, в которой по умолчанию установлены ссылки в стиле A1. Вставленные ссылки в стиле R1C1 будут автоматически преобразованы в ссылки в стиле A1.

    Примеры вставки формул суммирования со ссылками в стиле R1C1 в ячейку F1 (для той же таблицы):

    Пример вставки формул суммирования со ссылками в стиле R1C1 в диапазон F1:F10:

    Так как формулы с относительными ссылками и относительными по строкам ссылками в стиле R1C1 для всех ячеек столбца F одинаковы, их можно вставить сразу, без использования цикла, во весь диапазон.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    9 комментариев для “VBA Excel. Вставка формулы в ячейку”

    1. Доброго времени суток.
      Кто-нибудь подскажет, как написать в vba excel вот такую формулу: ="пример текста " & D1 в ячейку, где «пример текста » и D1 должна быть выражена в виде переменных. В итоге в ячейке должно отобразиться: пример текста 50 при условии, что d1=50

      1. Евгений

        Привет, Nik!
        Записываем формулу в ячейку "A1", собрав ее из переменных:

    2. Ещё один вопрос, почему абсолютная ссылка получается ="Пример текста "&$D$1, как сделать, что бы была относительная ="Пример текста "&D1 ?

      1. Евгений

    3. Сусанна

      Здравствуйте. Помогите , пожалуйста. Возникает такая проблема: после замены части формулы с помощью функции Replace,значение в ячейке воспринимается как текст, а не как формула.
      Команды

      а также

      не помогли)). При этом, если подобную замену делать штатным экселевским Заменить, то полученный результат воспринимается как формула и вычисляется сразу.

      1. Евгений

        Здравствуйте, Сусанна!
        У меня работает так:

        1. Сусанна

          Огромное спасибо) В понедельник приду на работу, и обязательно попробую Ваш вариант.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.