1

我有一个包含两个项目的自定义菜单:“开”和“关”。“开”项调用加载项函数来初始化某些功能(十字准线)。按下“开”项后,我希望看到每次选择更改时十字准线移动(即单击一个单元格并突出显示相应的行/列)。因此,我已经实现了一些东西,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". 如何防止应用程序重置?还是我使用了错误的工具(应用程序事件)来实现我想要实现的目标?

非常感谢,丹尼尔

4

0 回答 0