2017-02-02 21 views
2

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

+1

Сохранение активного листа в переменной, а затем, после того как макрос закончена, выберите лист внутри переменной снова. – Mafii

+3

Моим первым вопросом было бы, если вы хотите вернуться к первоначальному листу, почему вы его оставляете? Может быть, ваш макрос может быть написан [без использования Select или Activate] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)? –

+0

@VincentG хорошо пункт. Определенно, более чистый подход. – Mafii

ответ

3

Сохранить активный лист в переменной, а затем, после того как макрос закончена, выберите лист в пределах переменной снова:

' at the start of your macro: 
Dim sourceSheet as Worksheet 
set sourceSheet = ActiveSheet 


' at the end of your macro: 
Call sourceSheet.Activate 
+0

Блестящий, он отлично работает. – Tom

+0

Добро пожаловать :) – Mafii

 Смежные вопросы

  • Нет связанных вопросов^_^