01 Что делает макрос
Этот макрос помогает преобразовать все формулы в заданном диапазоне в значения.
В этом макросе, мы используем две переменные объекта Range. Одна из переменных содержит объем данных, с которым мы работаем, другая использует диапазон для хранения каждой отдельной ячейки. Каждый раз, когда активируется ячейка, мы проверяем, содержит ли она формулу. Если это так - мы заменим формулу значением, которое отображается в ячейке.
02 Код макроса
Sub
PreobrazovatFormuliVZnacheniya()
'Шаг 1: Объявляем переменные
Dim
MyRange
As
Range
Dim
MyCell
As
Range
'Шаг 2: Сохраните книгу прежде, чем измените ячейки?
Select
Case
MsgBox(
"Перед изменением ячеек"
& _
" Сохранить книгу?"
, vbYesNoCancel)
Case
Is
= vbYes
ThisWorkbook.Save
Case
Is
= vbCancel
Exit
Sub
End
Select
'Шаг 3: Определяем целевой диапазон
Set
MyRange = Selection
'Шаг 4: Запускаем цикл по диапазону
For
Each
MyCell
In
MyRange
'Шаг 5: Если в ячейке есть формула, устанавливаем значение
If
MyCell.HasFormula
Then
MyCell.Formula = MyCell.Value
End
If
'Шаг 6: Получаем следующую ячейку в диапазоне
Next
MyCell
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет две переменные объекта Range.
3. Здесь мы вызываем окно сообщения, которое спрашивает, хотим ли мы сохранить книгу. Затем он дает нам три варианта: Да, Нет и Отмена. Выбор Да сохраняет книгу и продолжает макрос. Нажатие кнопки Отмена выходит из процедуры без запуска макроса. Нажатие Нет запускает макрос без сохранения рабочей книги.
4. Шаг 4 заполняет переменную MyRange с целевым диапазоном. В этом примере мы используем выбранный диапазон — диапазон, который был выбран в электронной таблице. Вы можете легко установить переменную MyRange в определенном диапазоне, таком как Range («A1:Z100»). Кроме того, если ваш целевой диапазон является именованным диапазоном, вы можете просто ввести его имя: Range («MyNamedRange»).
5. Этот этап запускает цикл по каждой ячейке в целевом диапазоне. После того, как ячейка активируется, макрос использует свойство HasFormula, чтобы проверить, содержит ли ячейка формулу. Если содержит, мы устанавливаем ячейку равную значению, которое отображается в ячейке.
6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь