选择工作表时会发生什么事?

时间:2013-10-19 22:51:08

标签: excel vba excel-vba

我想要完成的事情相当简单。当用户选择工作表时,我希望显示一个消息框。含义:我正在查看Sheet1,我点击Sheet2选项卡,然后弹出一条消息,然后才能执行任何操作。我似乎无法找到移动到另一张纸时发生的事件。

我尝试过的事件: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

我已经完成了一些谷歌搜索,大多数情况都与细胞值变化或细胞选择发生变化有关。

4 个答案:

答案 0 :(得分:2)

这应该有效:

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

然而:

  • 代码必须位于工作表代码区域
  • 必须启用
  • 必须启用
  • 事件

答案 1 :(得分:2)

您可以在“ThisWorkbook”模块中使用以下内容,以便在更改工作簿中的工作表时触发消息。

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

这样就可以解决问题,而无需在每个工作表的代码模块中添加Private Sub Worksheet_Activate()

答案 2 :(得分:1)

以下是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不适合你?

答案 3 :(得分:1)

您需要在工作表中激活该事件 - 也就是说,如果您将其设置为工作表2,则只有在打开该工作表时才会触发该事件。 这在我的工作簿的第2页中有效。 Sub worksheet_activate() MsgBox“激活了!” 结束子