На предыдущем уроке мы рассматривали события, относящиеся к целой книги. Сейчас мы сфокусируемся на событиях связанных с отдельным листом.
Чтобы выполнить инструкции, основанные на событиях для отдельного листа, выберите лист в редакторе, а затем Worksheet :
Событие SelectionChange будет добавлено по умолчанию. Это событие выполняется когда бы не изменялось содержание диапазона:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) End Sub
Например, следующий код добавляет цвета заливки одного или более выбранных ячеек и автоматически удаляет цвет заливки от предыдущего выбранного диапазона, когда данный диапазон меняется:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static previous_selection As String If previous_selection <> "" Then 'Removing background color from previous selection : Range(previous_selection).Interior.ColorIndex = xlColorIndexNone End If 'Adding background color to current selection : Target.Interior.Color = RGB(181, 244, 0) 'Saving the address of the current selection : previous_selection = Target.Address End Sub
Это событие возникает при активации рабочего листа
Private Sub Worksheet_Activate () End Sub
Это событие возникает при активации другого рабочего листа
Private Sub Worksheet_Deactivate () End Sub
Это событие возникает при двойном щелчке на ячейке рабочего листа:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
Это событие возникает перед самым кликом правой кнопки мыши по рабочему листу
Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) End Sub
Это событие возникает каждый раз, когда рассчитываются или пересчитываются данные на рабочем листе
Private Sub Worksheet_Calculate () End Sub
Это событие возникает каждый раз, когда изменяется содержимое ячеек на заданном листе:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Это событие возникает при нажатии на ссылку (гипертекст)
Private Sub Worksheet_FollowHyperlink (ByVal Target As Hyperlink) End Sub
Чтобы выполнять код без каких-либо событий, вставьте его между двумя строчками такого кода:
Application.EnableEvents = False '=> отключение событий "Инструкции Application.EnableEvents = True '=> повторное включение событий