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

时间:2016-04-06 02:04:23

标签: excel excel-vba vba

目前我已在工作表1" Sheet1"中创建了VBA代码。如

  Private Sub Worksheet_Activate ()

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

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

 Private Sub Workbook_Open()

     Worksheets("Sheet1").Activate

 End Sub

工作表将首先显示,但VBA代码不会自动运行。每次我需要转移另一个工作表然后再转回,然后只运行VBA代码,这非常烦人,是否有任何解决方案可以解决这个问题?

2 个答案:

答案 0 :(得分:4)

如果该工作表已处于活动状态,则使用Worksheet.Activate method赢了。

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

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

答案 1 :(得分:0)

制作Worksheet_Activate Public而不是Private,然后在Worksheet("???").Worksheet_Activate代码中运行Workbook_Open