Excel VBA: автозапуск при создании нового листа

Я хочу автоматически запускать макрос всякий раз, когда я создаю новый лист в книге. Ниже то, что я пробовал:

    Private Sub Workbook_NewSheet()
        Call Macro1
    End Sub

    Sub Macro1()
        ...
        ...
    End Sub

Оказывается ничего не произошло. Почему?


person Andrew Lee    schedule 30.09.2013    source источник


Ответы (1)


Я думаю, вы поместили их не в то место.

Private Sub Workbook_NewSheet(ByVal Sh as Object)
    Call Macro1
End Sub

следует поместить в раздел ThisWorkBook, а

Sub Macro1()
    ...
    ...
End Sub

следует поместить в раздел Модули

person sam092    schedule 30.09.2013
comment
Большое спасибо! К вашему сведению, выражение NewSheet — это .NewSheet(Sh). Я узнал об этом на сайте microsoft.com, когда мой код не работал. Ниже пример с сайта: - person Andrew Lee; 30.09.2013
comment
Большое спасибо! К вашему сведению, выражение NewSheet — это .NewSheet(Sh). Я узнал об этом на сайте microsoft.com, когда мой код не работал. Пожалуйста, перейдите по ссылке здесь: Ссылка - person Andrew Lee; 30.09.2013
comment
да, я знаю.. Я просто копирую ваш код: P Обычно я выбираю событие из выпадающего списка - person sam092; 02.10.2013