假设我有一个包含两个工作表的工作簿: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
但是我不知道什么会触发该代码。
完成它的最好方法是什么?
答案 0 :(得分:0)
这对我有用(在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
答案 1 :(得分:0)
假设我有一个包含两个工作表的工作簿:Sheet1和Sheet2
然后获取消息
当用户从Sheet2返回Sheet1时
您可以直接去:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Sheet1" Then MsgBox "The switch"
End Sub