如何在打开的工作簿中激活VBA中的工作表

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

Private Sub Worksheet_Activate () 

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

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

  Private Sub Workbook_Open() Worksheets("Sheet1").Activate End Sub 

工作表将首先出现,但VBA代码不会自动运行。 每次我需要移动另一个工作表,然后再移回来,那么只有VBA代码将运行,这是非常恼人的,有没有解决scheme来解决这个问题?

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

 Private Sub Workbook_Open() Application.ScreenUpdating = False Worksheets("Sheet2").Activate Worksheets("Sheet1").Activate Application.ScreenUpdating = True End Sub 

确保您将激活触发器传递到另一个工作表并返回到Sheet1以便运行Worksheet_Activate事件macros或只是从Workbook_Open子项运行代码。

使用Worksheet_Activate Public而不是Private ,然后运行Worksheet("???").Worksheet_Activate在您的Workbook_Open代码中。