У меня есть макрос, который дублируется на кнопках на 3 листах, которые перемещаются между рабочими листами, и в тот момент, когда макрокоманда завершена, я все равно должен возвращаться на 3-й лист. Есть ли команда, которую я могу поместить в код, который вернет представление на листе, на котором был активирован макрос, а не на заданном листе.Как вернуться к рабочему листу, из которого был вызван макрос?
2
A
ответ
3
Сохранить активный лист в переменной, а затем, после того как макрос закончена, выберите лист в пределах переменной снова:
' at the start of your macro:
Dim sourceSheet as Worksheet
set sourceSheet = ActiveSheet
' at the end of your macro:
Call sourceSheet.Activate
Сохранение активного листа в переменной, а затем, после того как макрос закончена, выберите лист внутри переменной снова. – Mafii
Моим первым вопросом было бы, если вы хотите вернуться к первоначальному листу, почему вы его оставляете? Может быть, ваш макрос может быть написан [без использования Select или Activate] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)? –
@VincentG хорошо пункт. Определенно, более чистый подход. – Mafii