Worksheet_Activate 在打开工作簿时不会运行,即使我调用 sheet.Activate

Han*_*Han 2 excel vba

目前我在工作表 1“Sheet1”中创建了 VBA 代码作为

  Private Sub Worksheet_Activate ()
Run Code Online (Sandbox Code Playgroud)

所以每次我打开工作表时,VBA 代码都会自动运行。

但是我现在面临的问题是每次打开 Excel 工作簿时,即使我在 ThisWorkbook 中添加了编码,

 Private Sub Workbook_Open()

     Worksheets("Sheet1").Activate

 End Sub
Run Code Online (Sandbox Code Playgroud)

工作表将首先出现,但 VBA 代码不会自动运行。每次我需要转移另一个工作表然后再转移回来,那么只有VBA代码会运行,这很烦人,有什么解决方案可以解决这个问题吗?

小智 6

如果该工作表已处于活动状态,则使用Worksheet.Activate 方法将不会执行任何操作。

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Worksheets("Sheet2").Activate
    Worksheets("Sheet1").Activate
    Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)

确保您将激活触发器传递到另一个工作表并返回到 Sheet1,以便运行 Worksheet_Activate 事件宏或仅运行 Workbook_Open 子中的代码。