每当打开特定的工作簿时,您都可以使Excel自动运行一个过程。例如,当打开工作簿时,您可能需要运行一个过程,询问用户是否要执行某些任务,例如将前一天的数据保存到另一个文件中。

实际上,在打开工作簿时,Excel提供了两种不同的方式来运行过程。在这两种情况下,您所需要做的就是为宏提供一个特殊的名称。这是告诉Excel打开时要运行该过程的线索。如果需要,可以将过程命名为Auto_Open并将其放置在常规宏模块中。您还可以在ThisWorkbook对象中定义一个名为Workbook_Open的过程。

例如,请考虑以下代码:

Sub Auto_Open()

Dim sMsg As String     Dim iBoxType As Integer     Dim iUpdate As Integer     Dim sDefault As String     Dim sOldFile As String     Dim iStatusState As Integer

sMsg = "Do you want to save yesterday's transactions?"

iBoxType = vbYesNo + vbQuestion     iUpdate = MsgBox(sMsg, iBoxType, "Automatic Backup")

If iUpdate = vbYes Then         sMsg = "Which filename would you like use?"

sDefault = "OLD.DAT"

sOldFile = InputBox(sMsg, "Automatic Backup", sDefault)

iStatusState = Application.DisplayStatusBar         Application.DisplayStatusBar = True         Application.StatusBar = "Updating past months..."

UpdateYesterday(sOldFile)

Application.StatusBar = False         Application.DisplayStatusBar = iStatusState     End If End Sub

(请记住,此过程是一个示例;由于调用了称为UpdateYesterday的函数,该函数会进行实际的更新,因此无法在您的系统上正常运行。)

只要打开了它所连接的工作簿,该宏就会自动运行。您还可以修改代码并将其放置在ThisWorkbook对象中,只需将第一行更改为:

Private Sub Workbook_Open()

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(8451)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: