如果您希望每当启动 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 过程的结果。

在2003版本中得到验证。

在 Excel 启动时运行宏相关推荐

  1. 【VBA研究】EXCEL启动时自动启动窗体

    作者:iamlaosong VBA编程时为了界面美观,我们经常用到窗体Form(比如欢迎窗口),那么,如何做到让VBA窗体在EXCEL启动时自动运行呢? 方法有二: 第一,双击ThisWorkbook ...

  2. ASP.NET Core 3.x启动时运行异步任务(一)

    这是一个大的题目,需要用几篇文章来说清楚.这是第一篇.   一.前言 在我们的项目中,有时候我们需要在应用程序启动前执行一些一次性的逻辑.比方说:验证配置的正确性.填充缓存.或者运行数据库清理/迁移等 ...

  3. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...

  4. 如何在ASP.NET Core程序启动时运行异步任务(2)

    原文:Running async tasks on app startup in ASP.NET Core (Part 2) 作者:Andrew Lock 译者:Lamond Lu 在我的上一篇博客中 ...

  5. 如何在ASP.NET Core程序启动时运行异步任务(1)

    原文:Running async tasks on app startup in ASP.NET Core (Part 1) 作者:Andrew Lock 译者:Lamond Lu 背景 当我们做项目 ...

  6. 在Spring Boot启动时运行代码

    Spring Boot会自动为我们执行很多配置,但是迟早您将不得不做一些自定义工作. 在本文中,您将学习如何进入应用程序引导生命周期并在Spring Boot启动时执行代码 . 因此,让我们看看该框架 ...

  7. 计算机启动时运行ccleaner,CCleaner中设置表详解

    CCleaner是一款具备强大清理能力的系统优化和隐私保护软件.它可以清理文件夹.历史记录.注册表垃圾等,还能对电脑磁盘进行清理. 在大家使用CCleaner的过程中,是否想过更改CCleaner的设 ...

  8. TeamSpeak服务器无法运行,如何在启动时运行TeamSpeak3服务器?

    我试图在启动时运行TeamSpeak3服务器.我有ts3server脚本放在/etc/init.d.如果我输入ts3server启动但它在启动时不起作用.更重要的是它会在重启时关闭,所以只有启动才能工 ...

  9. Docker容器启动时运行 sh 脚本

    1.docker开机运行 对于Ubuntu18.04以上的系统,如果是使用命令sudo apt-get install -y docker.io安装的docker,都可以使用下列命令设置开机启动doc ...

最新文章

  1. 我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文
  2. [转 TDD] 如何坚持TDD:使用者出现的问题以及解决方案
  3. Android之实现多桌面图标app入口进入不同的页面,像2个独立运行的app一样,互不干扰。
  4. 批处理写入以及动态与参数化SQL,数据库的性能如何?
  5. C#面试题——附答案
  6. 顺序存储结构和链式存储结构的优缺点
  7. 从每年的编程语言排行来看,为什么C/C++能稳居前五?
  8. 基于RV1126平台imx291分析 --- media部件注册 mipi csi
  9. 解决Mac电脑报错:You don‘t have permission to access that port.
  10. Programming Languages PartB Week2学习笔记——用Racket编写解释器
  11. 如何为物联网解决方案选择合适的物联网模块
  12. 关于在vue中实现7天免登录
  13. Google Earth Engine——MODIS Combined 16-Day NDVI逐年合成影像循环下载
  14. networkx, 网络节点多个属性
  15. Microsoft Dynamics 365 (on-premises) Update 2.12
  16. ET篇:斗地主的流程(资源工作流)
  17. Python学习:print函数的用法
  18. paraview vtk文件乱码_如何在ParaView中为一系列传统VTK文件设置自定义时间步长值?...
  19. Tomcat9.0.13 Bug引发的java.io.IOException:(打开的文件过多 Too many open files)导致服务假死...
  20. 大数据时代,香港成为IDC发展新战略区域

热门文章

  1. 微信小程序连接MySQL数据库
  2. ASP页面模板对象[彭国辉]
  3. Python实现流星雨效果的代码
  4. cocos2d-x 添加自定义字体---中文,英文
  5. 微信支付~微信手机网站支付(mweb)
  6. SQL中的笛卡尔你真的懂吗?
  7. mPaaS 服务端核心组件:移动分析服务 MAS 架构解析
  8. 收费短剧小剧场类影视小程序源码 支持多运营模式+详细搭建教程
  9. 9轴陀螺仪KF系列算法的轴向问题
  10. 解密“达达-京东到家”的订单即时派发技术原理和实践