Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

"Горячие клавиши" через Application.OnKey

Автор Completum, 06.04.2019, 00:59:16

« назад - далее »

Completum

Добрый вечер, уважаемые пользователи форума! Можете помочь? Пользуюсь 2 файлами Excel. Поскольку приходится быстро между ними переключаться, заметил, что очень удобная комбинация: "Ctrl+tab". В обоих файлах написал макрос на переключение. Всё работает, если открывать "Вид-макросы...". Также написал код на "Горячие клавиши" в обоих файлах в "разделах" "эта книга":

Private Sub Workbook_Open()
On Error Resume Next
Application.OnKey "^{TAB}", "Переключение_на_Телемаркетинг"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnKey "^{TAB}", ""
End Sub


Соответственно, во втором файле название другое. Работает 1 раз туда и обратно, после чего горячие клавиши не действуют, но если запускать макрос стандартным способом через меню, переключается. Подскажите, пожалуйста, что можно придумать?

Заранее благодарен, Ваш форум по VBA самый лучший, Вы меня многому научили!)

Дмитрий Щербаков(The_Prist)

Я так понял в обоих книгах используется одно и то же сочетание клавиш, но привязка идет к разным процедурам. А это значит, что при открытии первой книги будет назначено сочетание клавиш на код из этой книги, а при открытии второй книги - вызов по клавишам из первой заменится на вызов из второй и в дальнейшем будет срабатывать исключительно он. Т.е. в итоге надо либо разное сочетание использовать, либо смотреть как можно изменить код переключения так, чтобы корректно работал из обеих книг.
Ну или как вариант переназначать еще каждый раз процедуру для сочетания клавиш по событию Workbook_Activate.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Completum

#2
Подскажите, пожалуйста, как это можно сделать "переназначать каждый раз процедуру для сочетания клавиш по событию Workbook_Activate"?

Completum

#3
Есть идея: написать одинаковый макрос с одним и тем же названием в обоих книгах, и проверяем какой файл активен, а какой нет, и назначить нужную комбинацию клавиш. Т.е. не желательно на 2 разных макроса назначать одну и ту же комбинацию, несмотря на то, что они в разных файлах.

Completum


Яндекс.Метрика Рейтинг@Mail.ru