`
hailan321
  • 浏览: 41870 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类

c# 通过宏操作office

阅读更多

 

 

在 Excel 启动时运行宏

适用于 Microsoft Excel 2000 和 2002

 

如果您希望每当启动 Microsoft Excel 时都自动执行某些操作,可以录制或编写一个每当打开工作簿时都将运行的宏。有两个办法可以做到这一点:

  • 录制一个宏,然后用 Auto_Open 这一名称保存它。
  • 将此宏编写为工作簿“打开”事件的 Microsoft Visual Basic® for Applications (VBA) 过程。

录制 Auto_Open 宏会受到诸多限制(见下文所述)。与录制 Auto_Open 宏相比,将启动宏编写为工作簿“打开”事件的 VBA 过程功能会强大得多,而且更为灵活,所以是创建启动宏的首选方法。

 要点    为了允许任何宏在 Excel 2000 或更高版本中运行,安全级别必须设置为“中”或“低”。要设置安全级别,请在“工具”菜单上指向“宏”,然后单击“安全性”。有关宏安全性方面的信息,请参阅 Excel 程序中的帮助。

隐藏 将工作簿设置为在 Excel 启动时自动打开

不管您用上述两种方法中的哪一种来创建宏,都要将宏保存在一个特定的工作簿中。因此,如果您想让这个宏在每次 Excel 本身启动时运行,就必须确保包含此宏的工作簿在 Excel 启动时自动打开。要做到这一点,您必须将包含该启动宏的工作簿(或指向此工作簿的快捷方式)保存在 XLStart 文件夹中。XLStart 文件夹的位置因您所用的 Microsoft Windows® 版本及其配置情况而异。

Microsoft Windows 95 Microsoft Windows 98

C:\Program Files\Microsoft Office\Office10\XLStart (对于 Office XP)
C:\Program Files\Microsoft Office\Office\XLStart (对于 Office 的早期版本)
C:\Windows\Application Data\Microsoft\Excel\XLStart

如果您启用了“配置文件”功能,那么 XLStart 文件夹的路径就会是:

C:\Windows\Profiles\用户名\Application Data\Microsoft\Excel\XLStart

其中用户名 是您登录 Windows 时使用的名称。

Microsoft Windows NT® 4.0

C:\Program Files\Microsoft Office\Office10\XLStart (对于 Microsoft Office XP)
C:\Program Files\Microsoft Office\Office\XLStart (对于 Office 的早期版本)
C:\Winnt\Profiles\username\Application Data\Microsoft\Excel\Xlstart

其中用户名 是您登录 Windows 时使用的名称。

Microsoft Windows 2000

C:\Program Files\Microsoft Office\Office10\XLStart (对于 Office XP)
C:\Program Files\Microsoft Office\Office\XLStart (对于 Office 的早期版本)
C:\Documents and Settings\用户名\Application Data\Microsoft\Excel\XLStart

其中用户名 是您登录 Windows 时使用的名称。

所有 Windows 版本中,您还可以在“选项”对话框(在“工具”菜单上单击“选项”)的“常规”选项卡上的“启动时打开此项中的所有文件”框中指定您自己的 Excel 启动文件的文件夹。

隐藏 创建 Auto_Open 宏

如果您录制一个宏并用“Auto_Open”这一名称保存它,每次您打开包含此宏的工作簿时,它都会运行。

  1. 如果您想将此宏保存在一个特定的工作簿中,请先打开此工作簿。
  2. 在“工具”菜单上,指向“宏”,然后单击“录制新宏”。
  3. 在“宏名”框中,键入 Auto_Open。
  4. 在“将宏保存在”框中,指定保存宏的位置:
    • 如想在当前工作簿中保存该宏,请选择“当前工作簿”。
    • 如想创建一个新的工作簿来保存该宏,请选择“新工作簿”。
    • 如想将宏保存在一个在启动 Excel 时自动载入的隐藏工作簿中,请选择“个人宏工作簿”。

 注释     如果您选择“个人宏工作簿”,Excel 就会创建一个名为 Personal.xls 的隐藏工作簿(如果 Personal.xls 尚不存在)并将宏保存在此工作簿中。在 Windows 2000 中,Personal.xls 保存在 C:\Documents 和 Settings\用户名\Application Data\Microsoft\Excel\XLStart 文件夹中,这样每当 Excel 启动时它都会自动载入。如果希望让您录制并保存在 Personal.xls 中的宏能够在某一特定的工作簿上工作,您必须将此工作簿也保存到 XLStart 文件夹中,这样,当 Excel 启动时,它也会打开。

  1. 单击“确定”,然后执行要录制的操作。
  2. 在“停止录制”工具栏上,单击“停止录制”按钮。
  3. 如果您在第 4 步中选择了将宏保存在“当前工作簿”或“新工作簿”中,则一定要将此工作簿保存或移动到某个 XLStart 文件夹中。

录制 Auto_Open 宏有许多限制:

  • 您想执行的许多操作都无法录制。
  • 如果您保存 Auto_Open 宏所用的工作簿已在其“打开”事件中包含了一个 VBA 过程,“打开”事件的这个 VBA 过程将会覆盖 Auto_Open 宏中的所有操作。
  • 如果一个工作簿是通过使用“打开”方法以编程方式打开的,则 Auto_Open 宏将被忽略。
  • Auto_Open 宏会在任何其他工作簿打开之前运行。所以,如果您录制了操作,希望 Excel 在默认的 Book1 工作簿或从 XLStart 文件夹载入的工作簿上执行这些操作,那么,在您重新启动 Excel 时,Auto_Open 宏将会失败,因为在打开默认工作簿和启动工作簿之前,它就已经运行了。

如果您遇到这些限制,就不应录制 Auto_Open 宏,而必须按本文下一节所述,为“打开”事件创建 VBA 过程。

隐藏 为工作簿的打开事件创建 VBA 过程

要在打开工作簿时自动运行宏,有另一种方法:使用“Visual Basic 编辑器”在该工作簿的“打开”事件中编写一个 VBA 过程。“打开”事件是一个内置的工作簿事件,它会在您每次打开该工作簿时都运行其宏代码。

下面这一简单示例使用“打开”事件在您打开工作簿时运行宏。

  1. 保存并关闭所有打开的工作簿。
  2. 打开您要添加宏的工作簿,或创建一个新工作簿。
  3. 在“工具”菜单上,指向“宏”,然后单击“Visual Basic 编辑器”。
  4. 在“项目资源管理器”窗口中,右键单击“ThisWorkbook”对象,然后单击快捷菜单中的“查看代码”。
  5. 在代码窗口上方的对象列表中,选择“工作簿”。这样,就自动为“打开”事件创建了下面这样一个空过程:
Private Sub Workbook_Open()

End Sub
  1. 将下列代码行添加到该过程中:
Private Sub Workbook_Open() MsgBox Date Worksheets("Sheet1").Range("A1").Value = Date End Sub
  1. 切换到 Microsoft Excel 并保存该工作簿。
  2. 关闭然后重新打开该工作簿。当您再次打开该文件时,Excel 将运行 Workbook_Open 过程,在一个消息框中显示今天的日期。
  3. 单击消息框中的“确定”。
  4. 请注意:Sheet1 上的单元格 A1 中也会包含当前日期,这就是 Workbook_Open 过程的结果。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics