Автоматизация Excel с помощью VBA: запуск макроса при смене листа

Макросы Excel помогают автоматизировать повторяющиеся задачи и повысить производительность. Одним из распространенных требований является запуск макроса при каждом изменении листа. В этой статье блога мы рассмотрим различные способы достижения этой цели на примерах кода VBA.

Метод 1: Событие Worksheet_Change:
Событие Worksheet_Change запускается всякий раз, когда изменяется значение ячейки на определенном листе. Поместив нужный код макроса в это событие, мы можем выполнить макрос автоматически.

Пример:

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Check if the changed cell is within a specific range
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
        ' Call your macro here
        Call YourMacroName
    End If
End Sub

Метод 2: Событие Worksheet_SelectionChange:
Событие Worksheet_SelectionChange срабатывает всякий раз, когда на листе выбирается новая ячейка или диапазон ячеек. Мы можем использовать это событие для запуска макроса при каждом изменении выбора.

Пример:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Call your macro here
    Call YourMacroName
End Sub

Метод 3: Событие Workbook_SheetChange:
Событие Workbook_SheetChange запускается при каждом изменении любого листа в книге. Это событие позволяет нам запускать макрос при каждом изменении любого листа, независимо от того, какой лист активен.

Пример:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ' Call your macro here
    Call YourMacroName
End Sub

Метод 4: Событие Workbook_SheetActivate:
Событие Workbook_SheetActivate запускается при активации листа. Используя это событие, мы можем автоматически запускать макрос при каждом выборе листа.

Пример:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ' Call your macro here
    Call YourMacroName
End Sub

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