Вставить формулу Excel vba в ячейку
Обновлено: 20.11.2024
Обратите внимание, что вам не нужно выбирать ячейку, чтобы ввести в нее значение, вы можете сделать это из любого места на листе. Например, из ячейки G45 вы можете написать:
Range("A1").Value = 32
Вы даже можете изменить значение ячеек на другом листе с помощью:
Sheets("SoAndSo") .Range("A1").Value = 32
Вы также можете ввести одно и то же значение во многие ячейки с помощью:
Range("A1:B32").Value = 32
Если вы хотите ввести текстовую строку в ячейку, вам нужно использовать двойные кавычки, например:
Range("A1").Value = "Peter" вернет Peter. Обратите внимание на кавычки.
Если вы хотите ввести текст с отображением двойных кавычек в ячейке, вам нужно утроить двойные кавычки, например:
Range("A1").Value = """ Peter"""< /i> вернет "Питер" в кавычках
Формула
Самый лучший и простой способ ввести формулу в ячейку программно (даже если вы профессионал) – это написать ее в ячейке, выбрать ее со знаком равенства в строке формул и вставить ее между кавычками в строке формул. код. Этот подход становится еще более удобным, когда вы начинаете разрабатывать сложные формулы или начинаете использовать переменные и другие адреса ячеек в своих формулах, как показано в части 5 этого урока.
Когда вы хотите ввести формулу в ячейку, вы должны написать:
Range("A1").Select
Selection.Formula = "=C8+C9"
Обратите внимание на две знаки равенства (=), включая знак в двойных кавычках, как если бы вы вводили его вручную.
Опять же, вам не нужно выбирать ячейку, чтобы ввести в нее формулу. В любом месте листа вы можете написать:
Range("A1").Formula = "=C8+C9"
Если вы напишете следующее:
Range("A1:A8").Formula = "=C8+C9"
Формула в A1 будет =C8+C9, формула в A2 будет быть =C9+C10 и так далее. Если вы хотите, чтобы во всех ячейках была точная формула =C8+C9, вам нужно написать:
Range("A1:A8").Formula = "=$C$8+$C$9"
Массив формул
Как вы узнали на веб-сайте в Excel, вы не будете часто использовать формулы массива, за исключением случаев, когда вам нужно использовать ИНДЕКС/ПОИСКПОЗ с более чем одним аргументом. Такая формула будет выглядеть следующим образом:
Range("A1:A8").FormulaArray Arial" color="green"> =INDEX($D$11:$D$18,MATCH(1,($A$11: $A$18=H20)*($B$11:$B$18=I20)*($C$11:$C$18=J20),0),1) "
ФормулаR1C1
Вот еще одна формула, которую вы будете использовать только в определенных труднодоступных местах. Допустим, в ячейке C1 вам нужна формула «=A1+B1», а в ячейке H1 вам нужна формула «=F1+G1». Вы можете использовать единую формулировку, которая будет адаптироваться к любой выбранной ячейке. Вам нужна формула, которая говорит: «Суммируйте столбцы ячейки 2 слева и столбец ячейки слева». Такая формула:
Range("C1,H1").FormulaR1C1 = "=RC[-2]+RC[-1]"
Если вам нужна формула, которая говорит "суммировать ячейку на 2 строки выше и ячейку на одну строку выше".
Range("C1,H1").FormulaR1C1 = "=R[-2]C+R[-1]C"
Узнайте больше советов
и практических примеров реальных решений реальных проблем
с пошаговыми инструкциями по разработке в 25
Вставка одной или нескольких формул с относительной ссылкой на ячейку — одна из наиболее важных и широко используемых функций, с которыми мы сталкиваемся каждый день при работе с VBA в Excel. В этой статье я покажу вам, как вы можете использовать Excel VBA для вставки формулы с относительной ссылкой на ячейку в одну ячейку или диапазон ячеек.
Excel VBA для вставки формулы с относительной ссылкой (быстрый просмотр)
Загрузить практическую рабочую тетрадь
Загрузите это учебное пособие, чтобы тренироваться, пока читаете эту статью.
Как использовать Excel VBA для вставки формулы с относительной ссылкой на ячейку
Здесь у нас есть набор данных с названиями некоторых продуктов и их продаж в определенные годы компании Mars Group.
Мы хотим, чтобы процент роста продаж за 2016–2017 годы был указан в столбце I. Формула роста продаж выглядит так:
Например, для первого продукта Desktop формула в ячейке I5 будет выглядеть так:
Для второго продукта Ноутбук это будет:
Наша цель сегодня — вставить эти формулы с относительными ссылками на ячейки с помощью VBA.
1.Вставка формулы с относительной ссылкой на ячейку в одну ячейку с помощью Excel VBA
Прежде всего, давайте научимся вставлять формулу в одну ячейку с помощью VBA.
Например, давайте вставим формулу (E5-D5)/D5 в ячейку I5.
Я покажу вам пошаговую процедуру для достижения этой цели.
⧪ Шаг 1. Объявление целевой ячейки
Прежде всего, мы должны объявить ячейку назначения, в которую будет введена формула. Вот это I5.
⧪ Шаг 2. Размещение формулы
Далее мы должны выделить указанную формулу. Вот он (E5-D5)/D5 .
⧪ Шаг 3. Вставка формулы в ячейку
Наконец, мы вставим формулу в ячейку. Это самый важный шаг.
Итак, полный код VBA будет таким:
⧭ Код VBA:
⧭ Вывод:
Запустите этот код. Он введет формулу (E5-D5)/D5 в ячейку I5. Выход формулы составляет 26%.
2. Ввод формулы с относительной ссылкой на ячейку в один столбец с помощью Excel VBA
Мы научились вводить формулу в одну ячейку с помощью VBA. Теперь мы научимся вводить формулы в один столбец.
⧪ Шаг 1. Объявление диапазона столбца назначения
Прежде всего мы объявим диапазон целевого столбца. Здесь I5:I4.
⧪ Шаг 2. Выделение формулы и вставка ее в первую ячейку
Далее мы выделим формулу и вставим ее в первую ячейку столбца.
⧪ Шаг 3. Копирование формулы
Затем скопируем формулу из первой ячейки.
⧪ Шаг 4. Вставка в остальные ячейки с помощью цикла For
Это самый важный шаг. Мы будем повторять цикл for, чтобы вставить формулу в остальные ячейки столбца. Для этой цели мы будем использовать свойство xlPasteFormulas VBA.
⧪ Шаг 5 (необязательно): отключение режима CutCopyMode
Наконец, мы отключим CutCopyMode VBA. Вы можете пропустить этот шаг, если хотите.
Поэтому полный код VBA будет таким:
⧭ Код VBA:
⧭ Вывод:
Запустите этот код. Он введет формулу роста продаж в каждую ячейку столбца I5:I14 с увеличением ссылки на ячейку.
Например, ячейка I5 получит (E5-D5)/D5 .
Ячейка I6 получит (E6-D6)/D6 .
3. Вставка формулы с относительной ссылкой на ячейку в несколько столбцов с помощью Excel VBA
Наконец, мы научимся вставлять формулы с относительными ссылками на ячейки в несколько столбцов.
⧪ Шаг 1. Объявление диапазона назначения
Как и в предыдущих двух методах, мы должны сначала объявить целевой диапазон. Вот это I5:K14.
⧪ Шаг 2. Выделение формулы, ее вставка в первую ячейку, копирование и вставка в первый столбец
Затем мы выделим формулу для первой ячейки, вставим ее в первую ячейку, скопируем и вставим в первый столбец. Они очень похожи на метод 2.
⧪ Шаг 3. Вставка формулы в остальные столбцы
Далее мы повторим еще два цикла for, чтобы вставить формулу в остальную часть столбца.
⧪ Шаг 4 (необязательно): отключение режима CutCopyMode
Наконец, мы отключим CutCopyMode VBA. Как и в случае со способом 2, вы можете пропустить этот шаг, если хотите.
Поэтому полный код VBA будет таким:
⧭ Код VBA:
⧭ Вывод:
Запустите этот код, и он вставит формулу роста продаж в каждую ячейку диапазона I5:K14 с увеличением ссылки на ячейку.
Например, ячейка I5 получит (E5-D5)/D5 .
Ячейка J5 получит (F5-E5)/E5 .
Опять же, ячейка I6 получит (E6-D6)/D6 .
Ячейка J6 получит (F6-E6)/E6 .
Что нужно помнить
В этой статье мы использовали свойство xlPasteFormulas метода PasteSpecial языка VBA. Помимо этого свойства, у метода PasteSpecial есть еще 11 свойств. Нажмите здесь, чтобы узнать о них подробнее.
Заключение
Итак, это способы вставки формулы с относительной ссылкой на ячейку в одну ячейку или диапазон ячеек с помощью VBA в Excel. У вас есть вопросы? Не стесняйтесь спрашивать нас. И не забудьте посетить наш сайт ExcelDemy для получения дополнительных сообщений и обновлений.
Этот метод возвращает фактическую формулу вместо выходного значения.
Получите формулу ячейки в макрос
Для этого мы используем свойство Formula.
Чтобы получить формулу в ячейке A1, введите ее в макросе:
Я поставлю MsgBox перед этой строкой кода, чтобы мы могли видеть вывод в Excel:
Вернитесь в Excel и запустите его в ячейке с датой, и вот результат:
В ячейке A1 вы можете увидеть фактический видимый вывод, то есть дату, а во всплывающем окне сообщения вы можете увидеть формулу, которая использовалась для создания вывода.
Использование формулы в VBA означает, что макрос получит формулу, которую мы видим в окне сообщения.
Примечания
Это довольно просто, если вы хотите легко получить значение ячейки, и вы можете прочитать об этом по ссылке.
Загрузите прикрепленную книгу, чтобы увидеть этот пример в Excel.
Вопрос? Спросите об этом на нашем форуме Excel
Курс Excel VBA — от новичка до эксперта
200+ видеоуроков 50+ часов обучения 200+ руководств Excel
С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)
Курс VBA — от новичка до эксперта
Получить текст из комментариев в Excel, включая автора комментария — пользовательская функция
Макрос: вывод всего текста из комментария к ячейке, включая автора комментария, с помощью этой пользовательской функции в Excel. Тэ.
Цикл по диапазону ячеек в Excel VBA/макросах
Учебное пособие: как использовать VBA/макросы для перебора каждой ячейки в диапазоне, будь то строка, столбец или .
Ключевое слово Me в макросах Excel и VBA
Учебное пособие. Ключевое слово Me в Excel VBA позволяет ссылаться либо на текущий рабочий лист, либо на рабочую книгу.
Выбор диапазонов ячеек в Excel с помощью макросов и VBA.
Учебное пособие. В этом учебном пособии по Excel VBA особое внимание уделяется выбору диапазонов ячеек в Excel. Это.
Именование ячеек в Excel для упрощения использования формул/функций
Учебное пособие. В этом учебном пособии я собираюсь представить идею именованных ячеек. Именованная ячейка — это ячейка w.
Подпишитесь на еженедельные уроки
БОНУС: подпишитесь сейчас, чтобы загрузить нашу электронную книгу Top Tutorials!
Ссылка на наши 15 лучших учебных пособий была отправлена вам, проверьте свою электронную почту, чтобы загрузить ее!
(Если вы не видите электронное письмо, проверьте папку "Спам" или "Промоакции" и обязательно добавьте нас в список контактов, чтобы получать наши электронные письма в будущем.)
Возможно использовать готовые формулы Excel с помощью программирования VBA. Это свойства, которые можно использовать с Range или Cells .
Формула VBA
Формула добавляет на лист предопределенные формулы Excel. Эти формулы должны быть написаны на английском языке, даже если у вас установлен языковой пакет.
Не волнуйтесь, если язык вашего Excel не английский, потому что, как в примере, он автоматически выполнит перевод в электронную таблицу.
Несколько формул
Вы можете вставить несколько формул одновременно, используя свойство Formula. Для этого просто определите объект Range, размер которого больше одной ячейки, и предопределенная формула будет «перетаскиваться» по всему диапазону.
"Перетаскивание" с помощью VBA:
Еще один способ выполнить то же действие — использовать метод FillDown.
Формула VBALocal
FormulaLocal добавляет на лист предопределенные формулы Excel. Однако эти формулы должны быть написаны на местном языке Excel (в случае Бразилии — на португальском).
Как и свойство Formula, FormulaLocal можно использовать для создания нескольких формул.
Формула VBAR1C1
FormulaR1C1 , а также Formula и FormulaLocal также добавляет в электронную таблицу предопределенные формулы Excel; однако использование относительных и абсолютных обозначений имеет разные правила. Используемая формула должна быть написана на английском языке.
FormulaR1C1 позволяет использовать готовые формулы Excel в VBA, легко интегрируя их в циклы и подсчитывая переменные.
- R относится к строкам в случае вертикального смещения.
- C относится к столбцам в случае смещения по горизонтали.
- N — целое число, указывающее, на сколько строк и/или столбцов нужно сдвинуть.
- Относительное обозначение: используйте в качестве ссылки диапазон, вызвавший его.
Если N опущено, предполагается значение 0.
В примере RC[-4]:R[5]C[-3] приводит к "B2: C7". Эти ячейки получаются путем: отступления 4 столбцов влево от RC[-4] от Range("F2") для получения "B2"; и 5 строк вниз и 3 столбца влево R[5]C[-3] от Range("F2"), чтобы получить "C7".
- Абсолютное обозначение: используйте начало таблицы в качестве ссылки.
Отрицательное значение N можно использовать только в относительной записи.
Две записи (относительная и абсолютная) могут быть объединены.
Функция рабочего листа VBA
К формулам Excel также можно получить доступ с помощью методов объекта WorksheetFunction.
К формулам Excel также можно получить доступ аналогично функциям, созданным в VBA.
Все формулы, представленные в объекте WorksheetFunction, написаны на английском языке.
Одним из больших преимуществ такого доступа к формулам Excel является возможность более легкого использования их в среде VBA.
Чтобы получить список доступных формул Excel в этом формате, просто введите WorksheetFunction. автоматически появится меню параметров со всеми формулами:
Читайте также: