Макрос перехода на предыдущий активный лист в Excel

Вот решение на вопрос нашего читателя.

Когда в книге много листов, а работаешь, например, в 7-м и 27-м, хотелось бы переходить быстро на нужный предыдущий лист (без участия прокрутки). Как, к примеру, когда работаешь в двух документах Excel, очень удобно пользоваться «ctrl+Tab»

Тут решение в виде макроса на событие смены листа. Для работы код необходимо поместить в «ЭтаКнига». Код макроса для перехода на предыдущий активный лист указан под картинкой. Далее, для удобства необходимо присвоить макросу горячую клавишу и наслаждаться удобством. Для этого откройте окно с макросами, выберите необходимый, перейдите в «Параметры», и пропишите сочетание клавиш, по которому будет срабатывать данный макрос.

SirExcel - макрос переключения на предыдущий активный лист

 

Public LastActiveList As Worksheet
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Set LastActiveList = Sh 'запомнить текущий активный лист
End Sub

Sub GoToLastList()
LastActiveList.Activate 'активируем предыдущий активный лист
End Sub

Оцените статью
Добавить комментарий

  1. Виктор

    Здравствуйте,
    Скажите пожалуйста, как использовать данный способ только на работу конкретного макроса. Есть макрос (работает с кнопки) выполняющий копирование данных с рабочего листа на другой, при этом после работы макроса происходит переход на резервный лист. Хотелось бы оставаться на рабочем листе. Попробовал переписать сам не получилось ))) Слабоват.

    Ответить
    1. excel автор

      В конце макроса просто добавьте
      Sheets(«Лист1»).Activate
      Вместо Лист1 — укажите название нужного листа, который должен быть активирован после завершения работы макроса

      Ответить
  2. Дмитрий

    Здравствуйте! подскажите хотелось бы реализовать такой вариант:
    Private Sub CommandButton1_Click()
    With Workbooks(«01»)
    .Sheets(«Лист1»).[A1]: .Sheets(«Лист2»).[A1] = TextBox1
    End With
    End Sub
    я понимаю что можно сделать так:
    Private Sub CommandButton1_Click()
    With Workbooks(«01»)
    .Sheets(«Лист1»).[A1]= TextBox1
    .Sheets(«Лист2»).[A1] = TextBox1
    End With
    End Sub

    Ответить
  3. Ликсеич

    Спасибо.

    Ответить