Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Некорректный вызов макросов по горячей клавише!

Автор Vlad, 26.07.2012, 19:44

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

Vlad

В случае открытия двух книг, имеющих макросы с одинаковым названием и назначенными одинаковыми горячими клавишами, происходит вызов макросов не локальной книги а другой, открытой! Хотя область действия макросу назначена как локальная книга - Эта КНИГА! Почему так происходит?

kuklp

Во-первых непонятно:
Цитировать"В случае открытия двух книг, ...происходит вызов макросов не локальной книги а другой, открытой!"
Что в Вашем понимании - "локальная" книга? Дальше, чего уж проще - не хотите таких конфликтов - не присваивайте макросам одинаковые хоткеи.:-)
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Vlad

Локальная книга - книга открытая и активная в текущий момент! Т.е. при работе в книге, при нажатии на хоткей вызывается макрос в другой открытой книге, имеющий такой-же хоткей! Где логика, товарищ Гейтс??? Если работаем в книге значит и хоткеи должны действовать макросов текущей активной книги!!!

kuklp

Не факт. Если я из активной книги открываю другую книгу, активной становится она, другая. Но в этом же макросе(к-рый например, открыл другую книгу), Бог знает, к какой книге отнесется вызов другого макроса. И чтоб избегать конфликтов, лучше ИМХО, давать разные хоткеи:-) Не, ну я не против, хотите прыгать на тонком льду...
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Vlad

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

kuklp

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771


kuklp

Ну так я бы и не удивлялся. Экс берет первый, попавшийся под руку:-) Т.е. при открытии книги application считывает модули ВБА и запоминает хоткеи. При открытии следующей книги, либо запоминаются новые назначения, либо уже запомненные просто игнорируются. Я хочу сказать, что сочетания клавиш принадлежат application, а не макросам, или книгам. Я сталкивался с таким явлением, когда программно присваивал onkey сочетанию клавиш и это сочетание прекрасно работало в других книгах, где этого совсем не нужно было и сыпались ошибки. Пришлось дописывать в события активации-деактивации книги и листа игнорирование этого хоткея.
PS Может я действительно чего-то не понимаю, но кто мешает Вам присвоить макросам разные хоткеи? Или иначе, прописывайте в событиях ампутацию сочетания.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Vlad

Не удобно переназначать хоткеи для макросов! Т.к. файл в котором они написанны используется несколькими сотрудниками (не в общем доступе), и есть необходимость работать одновременно с двумя файлами от разных сотрудников. Получается что, при открытии менять хоткеи? Не удобно.
Можно поподробней про отключение действия хотов предыдущей книги?

kuklp

Можно и поподробней.
На все события книги типа:
Workbook_SheetDeactivate
Workbook_Sheetactivate
Workbook_WindowDeactivate
Workbook_Windowactivate
каждый раз надо назначать(отменять) события на хоткей.
В справке по onkey рассказано как.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Prist

Мне кажется, что достаточно просто при открытии новой книги сначала удалить назначение на горячую клавишу и сразу назначть.
Application.onkey "{DEL}"
Application.onkey "{DEL}", "MyMacro"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

kuklp

Дим, я на эти грабли топал:-) См. пост от  27 Июль 2012, 12:11:42. А самое неприятное, что выявил эту фишку заказчик. Ничего страшного, на лету подобавлял и отправил исправленный файл. Там у меня из общей базы собирались и отправлялись данные в файлы клиентов и рассылались уведомления с выдержками из их аккаунтов. Даже в главном файле при переходе с листа на лист уже лезли проблемы. Так что лучше вовремя деактивировать хк:-)
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Prist

Хотя да, Серега - ты прав. Лучше на все эти события вешать в данном случае.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453