Добрый вечер коллеги.
Очередной вопрос поставил в ступор.
Исправлял программу, в которой куча макросов и нашёл один нюанс, который пока не могу решить.
Набросал два примера, чтобы показать проблему, она полностью показана на примере.
Есть две абсолютно одинаковые книги с одинаковыми макросами внутри. Некоторые макросы вызываются на сочетание клавиш. В данном примере на английской раскладке Ctrl+Shift+A. Если открыть книгу1 и нажать комбинацию указанную выше на английской раскладке, то отрабатывает макрос "Опа". Но если открыть вторую книгу не закрывая первую, сделать книгу2 активной и нажать опять эти клавиши на Eng раскладке, то макрос не отрабатывает. Т.е. Макрос находящийся во второй книге не выполняется, хотя он там есть и назначен на те же клавиши. Если сделать активной опять книгу1, то макрос отрабатывает.
Если первой открыть книгу2, а книгу1 открыть второй, то макрос наоборот отрабатывает только во второй книге.
Виной всему строчка кода, которая была мной добавлена:
Если убрать эту строчку, то макрос отрабатывает. Но макрос отрабатывает из книги1, а не из книги2. Что категорически нельзя. (В реальности это старая версия кода и в новом файле совершенно изменённый другой код).
В общем целая дилемма. Как оставить комбинации клавиш, но чтобы они отрабатывали из текущей книги с правильным макросом.
Очередной вопрос поставил в ступор.
Исправлял программу, в которой куча макросов и нашёл один нюанс, который пока не могу решить.
Набросал два примера, чтобы показать проблему, она полностью показана на примере.
Есть две абсолютно одинаковые книги с одинаковыми макросами внутри. Некоторые макросы вызываются на сочетание клавиш. В данном примере на английской раскладке Ctrl+Shift+A. Если открыть книгу1 и нажать комбинацию указанную выше на английской раскладке, то отрабатывает макрос "Опа". Но если открыть вторую книгу не закрывая первую, сделать книгу2 активной и нажать опять эти клавиши на Eng раскладке, то макрос не отрабатывает. Т.е. Макрос находящийся во второй книге не выполняется, хотя он там есть и назначен на те же клавиши. Если сделать активной опять книгу1, то макрос отрабатывает.
Если первой открыть книгу2, а книгу1 открыть второй, то макрос наоборот отрабатывает только во второй книге.
Виной всему строчка кода, которая была мной добавлена:
Код |
---|
If ThisWorkbook.Name = ActiveWorkbook.Name Then Application.Run ("Module2.Макрос2") |
В общем целая дилемма. Как оставить комбинации клавиш, но чтобы они отрабатывали из текущей книги с правильным макросом.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.