打开工作簿和工作表的事件

我正在寻找一个优雅的解决scheme来触发事件打开工作簿以及打开不同的工作表。 我不需要为每个工作表单独操作:他们都触发相同的方法。

我知道我可以同时使用Workbook_Activate / Workbook_OpenWorkbook_SheetActivate事件,但是我不知道这是否是“正式的方式”。 也许有一种方法可以用一个事件来做到这一点。

我也想知道在这个问题上我把代码放在哪里。 我现在拥有“ThisWorkbook”中的所有代码,而不是“模块”中的代码…

以下是我之前开发的一些代码,用于确保我的经理使用的报告始终根据一天中的时间向正确的选项卡打开。 我将这段代码放在我的VBA的“ThisWorkbook”模块中。

 Sub Workbook_Open() ' Set The Office Dim begin As String Dim myNum As String Dim myNum1 As String Dim TheDate As String ' Set Date TheDate = Format(DateTime.Now(), "mm-dd-yy") Sheets("MORNING").Range("H3").Value = TheDate Sheets("AFTERNOON").Range("G3").Value = TheDate 'Sheets("EVENING").Range("G3").Value = TheDate ' Select Sheet Based on Time of Day If Time >= 0.1 And Time < 0.5 Then Sheets("MORNING").Select Range("A53").Value = "Report completed by:" Range("C53").Value = Application.UserName Range("I53").Value = Date & " " & Time Range("B27").Select Call Populate 'Your next code ElseIf Time >= 0.5 And Time < 0.75 Then Sheets("AFTERNOON").Select Range("A54").Value = "Report completed by:" Range("C54").Value = Application.UserName Range("I54").Value = Date & " " & Time Range("C28").Select Call Populate 'Your next code End If End Sub 

请注意,我还添加了代码,用于使用用户标识和更新date和时间自动签名表单输出。 我希望这有帮助。

像其他人一样提到:没有一个事件可以做到这一点。 有可能是解决方法,但我更喜欢在这种情况下使用_Open和_SheetActive。 感谢大家!