Вызов событий на листе ничем не отличается от вызова любого неявного "Private" Sub
или Function
в любом модуле или объекте. Если они не Public
или Friend
, они не предоставляют доступ к своим функциям, сабвуферам и свойствам, не упоминая место их пребывания.
Если события не изменены с ключевым словом Private
перед ними, их можно вызвать с помощью следующего кода:
Sub TestMe
Sheet1.Worksheet_Change Range("A1")
End Sub
Если кто-то явно добавил слово Private
в начало события, то это выглядит так:
Private Sub Worksheet_Change(ByVal Target As Range)
, тогда нам действительно стоит подумать о том, чтобы не получить доступ к событию. Если все же мы хотим получить к нему доступ, это можно сделать с помощью Application.Run
.
Application.Run "Sheet1.Worksheet_Change", Sheet1.Range("A1")
Application.Run CStr(Worksheets(1).CodeName & ".Worksheet_Change"), Range("A1")