我有一个包含两个项目的自定义菜单:“开”和“关”。“开”项调用加载项函数来初始化某些功能(十字准线)。按下“开”项后,我希望看到每次选择更改时十字准线移动(即单击一个单元格并突出显示相应的行/列)。因此,我已经实现了一些东西,Worksheet_SelectionChange()
并打开功能使代码Worksheet_SelectionChange()
做一些事情。但是,Worksheet_SelectionChange
它是特定于工作表的,我想跨工作表使用此功能,而不必在我想使用十字准线的每个工作表中添加代码。所以,我到达了应用程序事件。因此,我声明
Public WithEvents App As Application
Public Sub Auto_Open()
Set App = Application
End Sub
Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call DrawCrossHair(...)
End Sub
只要我不点击 Excel 进入另一个应用程序,一切都很酷。一旦发生这种情况,App
就会重置为Nothing
并且App_SheetSelectionChange
不会被调用,因为 Auto_Open 不会在每个"Excel_getFocus"
. 如何防止应用程序重置?还是我使用了错误的工具(应用程序事件)来实现我想要实现的目标?
非常感谢,丹尼尔