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

为了在打开工作簿时自动运行过程,只需将过程命名为Auto_Open()。因此,只要打开包含它的工作簿,就会自动运行以下过程:

Sub Auto_Open()

Dim strMsg As String     Dim intBoxType As Integer     Dim strTitle As String     Dim intUpdate As Integer     Dim strDefault As String     Dim strOldFile As String     Dim intStatusState As Integer

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

intBoxType = vbYesNo + vbQuestion     strTitle = "Automatic Backup Routine"

intUpdate = MsgBox(Msg, BoxType, Title)

If intUpdate = vbYes Then         strMsg = "Which filename would you like use?"

strDefault = "OLD.DAT"

strOldFile = InputBox(strMsg, strTitle, strDefault)

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

UpdateYesterday         Application.StatusBar = False         Application.DisplayStatusBar = intStatusState     End If End Sub

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

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

Private Sub Workbook_Open()

许多人认为使用Auto_Open作为此类宏的“旧方法”,而使用Workbook_Open作为“新方法”。从某种意义上说是正确的;与Auto_Open相比,Workbook_Open方法是这种类型的宏更加面向对象的方法。但是实际上,两者之间几乎没有什么区别。

注意:

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

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

本技巧(2289)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: