Excel Worksheet_SelectionChange 事件根本没有触发? (在 Office 2013 和 2016 上)

Excel Worksheet_SelectionChange event not firing at all? (on both Office 2013 & 2016)

我花了很多时间来完成我认为非常简单的测试。我想要实现的是在用户选择新单元格或更改单元格内容时弹出 MsgBox

我已经进行了大约 6 个小时,但到目前为止还没有成功!我在 Office 2016 (Windows 10) 和 Office 2013 (Windows 7) 中有相同的行为。

这是我的方法:

  1. 新建启用宏的工作簿。
  2. 在工作簿中记录一个新的宏。停止录音。打开 VBA.
  3. 打开 "Module 1" 的代码并将不需要的代码替换为以下代码。保存文件。
  4. 选择文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 宏设置 -> "Trust access to the VBA project object model"。保存文件。
  5. 我也保证了Application.EnableEvents = True
  6. 我希望能够单击各种单元格或编辑单元格,并在事件发生时收到 MsgBox

这是我的代码:

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)       
    MsgBox "changed!"  
End

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "selected!"
End Sub

Public Sub Just_In_Case()
    Application.EnableEvents = True
End Sub

我错过了什么?是否有阻止此操作事件的安全设置?我在工作时的在线行为与在家离线时的行为相同。

提前感谢您的帮助! :)

PS 这是我的 VBA 环境的屏幕截图,如果相关:https://i.stack.imgur.com/yXkMK.png

Workbook_SheetChange 代码需要在 ThisWorkbook 代码模块中,而不是在常规模块中。

编辑:Worksheet_SelectionChange 进入工作表代码模块

http://www.cpearson.com/excel/events.aspx

为了完整参考,解决方案是我的代码被错误地放置在 Module1 编码区。 (我不知道代码可以放在其他地方!)

Workbook_SheetChange() 属于 ThisWorkbook

Worksheet_SelectionChange() 属于 Sheet1

像这样!图片截图: Sheet1 ThisWorkbook

蒂姆,非常感谢你的帮助! :D