01 Что делает макрос
Этот макрос позволяет определить диапазон ячеек и, если пользователь изменит значение хотя бы одной ячейки в этом диапазоне, файл сразу же сохранит эти изменения.
Секретом этого кода является метод Intersect. Поскольку мы не хотим, чтобы наш файл сохранялся при изменении любой ячейки, нам надо определять находится ли ячейка в диапазоне C5:C16.
Метод Intersect возвращает: либо объект Range, который определяет пересечение между двумя заданными диапазонами, или ничего. Так что, по сути, мы должны выделенную ячейку (Target) поместить в метод Intersect, чтобы проверить значение. В зависимости от результата будем сохранять файл или ничего не делать.
02 Код макроса
Sub
Worksheet_Change(
ByVal
Target
As
Range)
'Шаг 1 - Проверка относится ли ячейка к диапазону
If
Not
Application.Intersect(Range(
"C1:C16"
), Range(Target.Address)) _
Is
Nothing
Then
'Шаг 2 - Сохранение книги, если относится
ActiveWorkbook.Save
'Шаг 3 - Завершаем проверку условий
End
If
End
Sub
03 Как работает макрос
1. На шаге 1 проверяем, относится ли ячейка, которая изменилась, к области нашего диапазона. Сам диапазон определяем методом Intersect. Значение False (ЛОЖЬ) означает, что ячейка находится вне указанного диапазона.
2. Если ячейка относится к диапазону, то на шаге 2 запускаем сохранения активной книги.
3. На шаге 3, мы просто закрываем конструкцию If … Then… End if (должны закрыть его с соответствующим End If)
04 Как использовать
Для реализации этого макроса, нужно скопировать и вставить его код в окно события Worksheet_Change.
Размещение макроса здесь позволяет запускать каждый раз, когда вы делаете какие-либо изменения листа.
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы.
3. Правой кнопкой мыши нажмите на листе, из которого вы хотите, чтобы вызывался код, и выберите View Code
4. В левой верхней части открывшегося окна выберите Worksheet (автоматически создаст макрос), в правой части выберите Change
5. Введите или вставьте код в вновь созданном модуле. При необходимости измените диапазон и другие параметры
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
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь