工作表打开时触发OnOpenExcelWorksheet事件?

时间:2010-06-08 14:46:25

标签: events vba

如何在工作表打开时运行代码? (我想要运行的代码包含在开始工作表中)

3 个答案:

答案 0 :(得分:20)

您可以将某些代码放在Worksheet_Activate()函数中,该函数将在选择工作表时运行。此外,当您离开wokrsheet并转到另一个时,使用Worksheet_Deactivate()来运行代码。这些函数放在工作表对象代码中。

Private Sub Worksheet_Activate()
    MsgBox ("Hi")
End Sub

Private Sub Worksheet_Deactivate()
    MsgBox ("Bye")
End Sub

答案 1 :(得分:10)

我不确定如何在工作表单打开时运行代码,但是当工作预订打开时,您可以让它运行。

在VBA编辑器中,打开名为“ThisWorkbook”的Microsoft Excel对象。在编辑器窗口的顶部,您应该看到两个下拉框:(常规)和(声明)。将(常规)组合框更改为“工作簿”。

这将为您提供名为Workbook_Open()的方法。打开Excel工作簿时,将执行此方法中的代码。


此外,当您选择了工作簿时,您可以在一次性使用的事件中获得更多事件,可在(声明)部分中找到,例如SheetActivateSheetChanged等。我没有使用过这些方法,但如果您需要与单个工作表相关的事件而不仅仅是整个工作簿,则可能需要尝试这些方法。

答案 2 :(得分:0)

我发现在仅使用工作表代码打开时自动运行的一种方法 - 没有工作簿代码 - 是使用由即公式 =Now() 触发的计算事件。

如果应该允许将工作表复制到新工作簿并且 VBA 代码也在那里运行,这可能是相关的。