Как запустить макрос при изменении определенных ячеек в Excel
Аннотация
В Microsoft Excel можно создать макрос, который вызывается только тогда, когда значение вводится в ячейку в определенном листе или в любом листе, который в настоящее время открыт.
Обратите внимание, однако, что не следует вызывать макросы без необходимости, поскольку они замедляют производительность Excel.
Дополнительная информация
Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена. Во многих случаях макрос должен работать только тогда, когда определенное количество ячеек имеет значения, введенные в них (именуемые в этом документе "ключевыми ячейками"). Для предотвращения запуска большого макроса каждый раз, когда значение вводится в ячейку листа, необходимо проверить, является ли ActiveCell одной из ключевых ячеек. Для этого используйте метод Intersect на ActiveCell и диапазон, содержащий ключевые ячейки, для проверки того, что ActiveCell является одной из ключевых ячеек. Если ActiveCell находится в диапазоне, содержащем ключевые ячейки, можно вызвать макрос.
Для создания макроса Visual Basic:
Нажмите правой кнопкой на вкладке Sheet1, а затем нажмите Посмотреть код.
Открывается лист модуля за sheet1.
Введите следующий код в лист модуля:
Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable KeyCells contains the cells that will ' cause an alert when they are changed. Set KeyCells = Range("A1:C10") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then ' Display a message when one of the designated cells has been ' changed. ' Place your code here. MsgBox "Cell " & Target.Address & " has changed." End If End Sub
Нажмите Закрыть и вернуться в Microsoft Excel в меню Файл.
При вводе записи в ячейках A1:C10 на листе 1 отображается окно сообщений.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по