【发布时间】:2020-09-08 06:00:06
【问题描述】:
我有一个启用宏的工作簿,在我的机器上运行良好,但是当我的同事尝试使用它时,工作表事件不会触发。
我已经尽可能多地进行了搜索,但我仍然感到困惑。
以下条件 [都是以前 SO 帖子中的原因/解决方案] 为真:
- 事件命名正确(我没有更改名称)并且位于正确的位置(工作表代码)(如前所述,在我的机器上一切正常,所以这些必须是真的)
-
Application.EnableEvents = True(我在同事的机器上测试时在即时窗口中测试了这个) - 安全设置:我同事的机器上都选择了“启用所有宏”和“信任对 VBA 项目对象模型的访问”
我已将MsgBox 作为每个事件处理程序的第一行。这些没有出现,这就是我知道事件没有触发的方式。
如果我从“即时”窗口启动MsgBox,它确实会出现。
编辑:我们已尝试重新启动 Excel 并重新启动整个计算机。这些都没有帮助。
这是每个处理程序的代码,包括 MsgBox 测试行:
Private Sub Worksheet_Activate()
MsgBox "worksheet activate"
Me.Protect Password:=WORKSHEET_PASSWORD, UserInterfaceOnly:=True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "worksheet change"
Application.ScreenUpdating = False
FermDataWorksheetChange Target
Application.ScreenUpdating = True
End Sub
我真的希望有人可以帮助我,因为这是我同事的业务关键型应用程序。
谢谢!
【问题讨论】:
-
您是否尝试过新工作簿中的代码?
-
或者重新启动计算机 我的办公产品挂断了,没有可见的进程在运行。
-
嗨@SJR,你的意思是我在新工作簿中尝试过类似的事件处理程序吗?我没有,但如果尝试提供有用的信息,我可以。
-
尝试在另一台计算机上以安全模式运行 Excel(启动 Excel 时按住 Ctrl),然后再次尝试您的工作簿。有用吗?
-
@Warcupine 我要编辑我的原始帖子——是的,我们已经重新启动 Excel 和整个计算机,但无济于事。