select工作表时发生什么事件?

我正在努力完成的事情相当简单。 当用户select一个工作表时,我想要一个消息框出现。 含义:我正在查看Sheet1,点击Sheet2选项卡,popup消息,然后我可以做任何事情。 我似乎无法find移动到其他工作表时触发的事件。

我试过的事件: Workbook_SheetActivateWorksheet_Activate

 Private Sub Workbook_SheetActivate(ByVal sh As Object) MsgBox ("Example Message") End Sub 

要么

 Private Sub Worksheet_Activate() MsgBox ("Example Message") End Sub 

我做了一些Googlesearch,大多数情况是关于单元格值改变或单元格select更改的时候。

这应该工作:

 Private Sub Worksheet_Activate() MsgBox "you never visit...you never call....you never write" End Sub 

然而:

  • 代码必须在工作表代码区域中
  • macros必须启用
  • 事件必须启用

您可以在“ThisWorkbook”模块中使用以下内容在工作簿中更改工作表时触发邮件。

 Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox Sh.Name & " activated!" End Sub 

这将解决问题,而不必将Private Sub Worksheet_Activate()添加到每个工作表的代码模块。

以下是Excel中可用的所有工作表事件的链接:

http://dmcritchie.mvps.org/excel/event.htm

 Private Sub Worksheet_Activate() Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) -- (additional examples) Cancel = True 'turn off Edit mode when using “Edit directly in a cell” Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True 'turn off Edit mode when using “Edit directly in a cell” Private Sub Worksheet_Calculate() Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False 'should be part of Change macro Application.EnableEvents = True 'should be part of Change macro Private Sub Worksheet_Deactivate() Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Worksheet_Activate为您工作?

您需要在工作表中激活事件 – 也就是说,如果您将其放在工作表2中,则只有在打开工作表时才会触发。 这工作在我的工作簿的工作表2。 Sub worksheet_activate()MsgBox“activated!” 结束小组