powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Sheets с описанными событиями
8 сообщений из 8, страница 1 из 1
Sheets с описанными событиями
    #33375114
glazz_gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я написал маленькую СУБД, в ней листы создаются в результате действия VBA кода. Как сделать так что бы в созданном листе уже было опосание действия Worksheet_SelectionChange и Worksheet_Change.

Поможите плиз!!!
Люди добрые!?
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33375120
glazz_gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что бы на всех листах были одинаковые события
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33375810
Есть 2 варианта как реализовать, с моей точки зрения.

1. Можно программно создавать код при создании листа.

Модуль ЭтаКнига.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim vbc As VBComponent
    Dim cm As CodeModule
    Dim i As Integer
      
    Set vbc = ThisWorkbook.VBProject.VBComponents(Sh.Name)
    Set cm = vbc.CodeModule

    With cm
        i = .CountOfLines +  1 
        .InsertLines i, _
          "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
        i = i +  1 
        .InsertLines i, _
          "    MsgBox ""A!"", vbInformation"
        i = i +  1 
        .InsertLines i, "End Sub"
    End With

    Set cm = Nothing
    Set vbc = Nothing
End Sub

2. Оперировать событиями Application.

Модуль класса.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public WithEvents App As Application

Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "A"
End Sub

Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "B"
End Sub

Модуль ЭтаКнига.

Код: plaintext
1.
2.
3.
4.
Dim a As New Class1

Private Sub Workbook_Open()
    Set a.App = Application
End Sub
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33401735
glazz_gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я попробывал 1 способ:

Но он не работает. Выдает ошибку при компиляции ( user-defined type not defined )
Ошибка при иницилизации переменных

Dim vbc As VBComponent
Dim cm As CodeModule


Помогите разрешить этот вопрос!!! ПЛИЗ!!!
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33402443
Для первого способа необходимо подключить библиотеку:

Tools -> References... -> Microsoft Visual Basic for Applications Extensibility.

Второй пробовал?
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33404745
glazz_gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второй не пробывал.

У меня получилось так что нада использывать разные события на листах, а в первом способе что хочу то и пишу в событие.

События уже описаны, вопрос как туда их вставлять при создании листа.

Вставляешь ручками и все работает.

А что касается подключения библиотеки надо попробывать.

Вечерам поделюсь что получилась!!!
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33410045
glazz_gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я подключил библиотеку ну вроди компиляцию прошел. Круто!!
Теперь новая ошибка на строке

Set vbc = ThisWorkbook.VBProject.VBComponents(Sh.Name)

Подскажите что дальше!!! Ну ведь оно все равно неработает!!!
...
Рейтинг: 0 / 0
Sheets с описанными событиями
    #33410099
Прикрепи свою книгу к сообщению.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Sheets с описанными событиями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]