我有一个包含两个项目的自定义菜单:“开”和“关”。 “On”项调用Add-In函数来初始化某些功能(十字准线)。在按下“开”项后,我希望看到每个选择更改时的十字准线移动(即单击一个单元格并突出显示相应的行/列)。因此,我在Worksheet_SelectionChange()
中实现了一些功能,并且启用了功能On会使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
不会被调用,因为每个"Excel_getFocus"
都不会调用Auto_Open。如何防止App重置?或者我使用错误的工具(App Events)来实现我想要实现的目标?
非常感谢, 丹尼尔