Excel vba: определить переключатель листа: когда выбран другой лист - PullRequest
0 голосов
/ 30 ноября 2018

Предположим, у меня есть рабочая тетрадь с двумя листами: Sheet1 и Sheet2.Я хочу, чтобы сообщение появлялось, когда пользователь переходит с Sheet2 на Sheet1.

Я не уверен, как к нему подойти - до сих пор я только вмешивался в подпрограмму Worksheet_Change, но проблема не кажется чем-то, что можно было бы решить внутри этой подпрограммы.Прямо сейчас я могу думать только о настройке некоторой глобальной переменной

 Dim previousWorksheet As Variant
 Set previousWorksheet = ActiveSheet.Name

, а затем проверить, какой лист является активным:

If previousWorksheet = "Sheet2" And ActiveSheet.Name = "Sheet1" Then
   MsgBox("DETECTED")

End If

Но что может вызвать этот код, я нене знаю.

Как лучше всего это сделать?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Предположим, у меня есть рабочая книга с двумя листами: Sheet1 и Sheet2

, чтобы получить сообщение

, когда пользователь переходит с Sheet2 обратно на Sheet1

Вы можете просто пойти:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Sheet1" Then MsgBox "The switch"
End Sub
0 голосов
/ 30 ноября 2018

Вот что у меня сработало (внутри модуля ThisWorkbook):

Option Explicit

Dim previousWorksheet As String


Private Sub Workbook_open()
    previousWorksheet = ActiveSheet.Name
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    MsgBox ("changed")

    If ActiveSheet.Name = "Sheet1" And previousWorksheet = "Sheet2" Then
        MsgBox ("the switch")

    End If

    previousWorksheet = ActiveSheet.Name

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...