Возможно ли программно изменить (создать) событие листа. Например событие при активации???
Программное изменение события
25.11.2009 20:26:57
|
|
|
|
25.11.2009 20:47:22
Что Вы вкладываете в понятие "изменить событие листа? Ключевое слово в вопросе: ИЗМЕНИТЬ.
|
|
|
|
25.11.2009 21:11:01
Например, в какой-либо процедуре вызываем активацию нужного листа. Это приведёт к событию Worksheet_Activate, как и написал VovaK. Но подозреваю, что Вам нужно нечто другое :-)
|
|
|
|
25.11.2009 21:11:19
так и писать
Worksheet("имя").Activate |
|
|
|
25.11.2009 21:22:53
Может быть Вы ищете аналог кода, который программно нажимает на некую кнопку? Т.е. пытаетесь имитировать событие, которого фактически не было.
|
|
|
|
25.11.2009 21:37:23
VBA: Как добавить одну или несколько строк в нужное место программы ?
Оно?
Bite my shiny metal ass!
|
|
|
|
25.11.2009 21:56:51
> Делаю надстройку для себя, так как постоянно создаю НОВЫЕ КНИГИ и листы
В этом случае ПРОЩЕ поступить иначе. Не надо записывать в каждую книгу этот код. Надстройка, будучи загруженной вместе с Excel, способна перехватывать события активации листов и ячеек всех открытых книг. Достаточно правильно прописать этот код в надстройке. Потребуется создать модуль класса с подобным кодом: Public WithEvents AppEv As Application Private Sub AppEv_NewWorkbook(ByVal WB As Workbook) msgbox "Создана новая книга excel" End Sub Private Sub AppEv_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) MsgBox "Изменилось выделение на листе " & Sh.Name & " в книге " & Sh.Parent.Name End Sub Пример кода можно найти здесь: |
|
|
|
25.11.2009 21:57:23
Надстройка спасет автора...
|
|
|
|
25.11.2009 22:01:55
Игорь, какая накладка вышла - мой вопрос (а это был все таки вопрос) лег после Вашего описания - утверждением... МДа ... Конфуз вышел... Виноват...
|
|
|
|
25.11.2009 22:05:00
Влад, а так лучше?
|
|
|
|
25.11.2009 22:15:43
{quote}{login=EducatedFool}{date=25.11.2009 09:56}{thema=}{post}> Делаю надстройку для себя, так как постоянно создаю НОВЫЕ КНИГИ и листы
В этом случае ПРОЩЕ поступить иначе. Не надо записывать в каждую книгу этот код. Надстройка, будучи загруженной вместе с Excel, способна перехватывать события активации листов и ячеек всех открытых книг. Достаточно правильно прописать этот код в надстройке. Потребуется создать модуль класса с подобным кодом: Public WithEvents AppEv As Application Private Sub AppEv_NewWorkbook(ByVal WB As Workbook) msgbox "Создана новая книга excel" End Sub Private Sub AppEv_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) MsgBox "Изменилось выделение на листе " & Sh.Name & " в книге " & Sh.Parent.Name End Sub Пример кода можно найти здесь: А если не на всех листах нужна такая функциональность??? А двойной щелчок недопустим тому что формулы покоцать можно однако нечаянно. |
|
|
|
Читают тему