Получите последний деактивированный рабочий лист

#excel #vba #excel-formula #vba6

Вопрос:

 Private Sub Worksheet_Deactivate()
Msgbox(worksheet.Name)
End Sub
 

Как я могу получить последний деактивированный лист, как только я нажму на любой лист, кроме интересующего листа.

Ответ №1:

  1. Сначала вы создаете Public переменную поверх ThisWorkbook модуля кода (в области объявлений).:
 Public lastSheetName As String
 
  1. Поместите следующий код в Workbook_SheetDeactivate событие (также в ThisWorkbook модуле кода):
 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
   lastSheetName = Sh.name
End Sub
 
  1. Затем вы можете вернуть имя последнего деактивированного листа с помощью простого Sub или внутри другого кода события. Попробуйте вставить следующий код в стандартный модуль и запустить его. Конечно, после того, как вы деактивировали хотя бы один лист…
 Sub LastDeactivatedSheet()
   MsgBox ThisWorkbook.lastSheetName
End Sub
 

3.a Или поместите тот же код в Workbook_SheetActivate событие , таким образом:

 Private Sub Workbook_SheetActivate(ByVal Sh As Object)
   MsgBox "You are coming from " amp; ThisWorkbook.lastSheetName
End Sub
 

Каждый раз, когда вы активируете другой лист, он будет информировать вас, с какого листа вы пришли…

Комментарии:

1. @Manideep Karthik: Разве вышеприведенное решение не решило вашу проблему? Вы нашли время, чтобы проверить это?