【问题标题】:exec a xlam everytime I open an excel file每次我打开一个excel文件时执行一个xlam
【发布时间】:2013-08-24 22:09:41
【问题描述】:

当我打开 excel 文件时,我有以下代码来执行 xlam 文件:

   Sub Auto_Open()
      Application.OnTime Now + TimeValue("00:00:05"), "readCsv"
   End Sub

   Sub readCsv()
      ....
   End Sub

我将它添加为加载项,因此我打开的每个文件都有 xlam 文件。如果没有打开其他 excel 文件,它可以正常工作,但是在没有关闭 excel 文件的情况下,我打开了第二个文件,它什么也不做。即使打开了另一个 excel 文件,我也需要执行代码。这可能吗?

我也尝试在 ThisWorkbook 中编写代码,但结果是一样的,如果打开了另一个 excel 文件,它什么也不做。

【问题讨论】:

  • 这不是足够的代码。你怎么打开文件?考虑以只读方式打开它。你有错误吗?您是否尝试过调试代码?
  • 为什么还不够? readCsv 中的内容无关紧要,因为它运行良好......问题是 Auto_Open 仅在没有其他 excel 文件打开时才有效,如果我将 readCsv 放入 ThisWorkbook 也会发生同样的情况。我只需双击要打开的excel文件即可打开文件。希望这个解释会有所帮助。
  • 它不起作用...首先我将 Auto_open() 替换为 Workbook_open() 并且即使使用第一个打开的 excel 文件也无法正常工作。然后我在 Internet 上看到 Workbook_Open() 必须在 ThisWorkbook 中,然后我把它放在那里。对于第一个打开的 excel 文件,它可以工作,但不能用于第二个......所以基本上 Auto_open() 和 Workbook_open() 给了我相同的结果。
  • 你意识到你必须在你打开的每个文件中都有代码才能执行 Workbook_Open()

标签: excel excel-addins autoexec vba


【解决方案1】:

要在打开的任何工作表中使用您的宏(无论名称如何),您只能使用个人工作簿Here is the Link

如果上述不适合,您可以准备加载项并为用户安装它(如果是这种情况,谷歌为它)

编辑:

如何在所有打开的文件中添加...

转到文件 - 选项 - 快速访问工具栏 - 从下拉菜单中“选择命令” - 选择宏,然后选择加载项宏 - 添加它,下面会有一个修改按钮从中选择您喜欢的图标 - 确定

现在您将能够看到链接在 excel 顶部的带有插件功能的图标 - 单击它即可运行,它将永远保留在那里(如果错过,您可以重新应用设置)....

程序是 2010 年的,2007 年应该是类似的....对于 2003 年有不同的方法来实现它...

【讨论】:

  • 我将宏作为插件。我创建了一个 xlam 文件并将其放入注册表编辑器中。这做得很好,因为它适用于我打开的所有文件。问题是,如果我在第二个之前打开了另一个 excel 文件,则什么也不做。
  • 感谢您的回答。我想要的是在打开 excel 文件时启动宏,而不是创建一个按钮来制作它。为此,创建一个 xlam 文件并将其添加到加载项中。但我遇到的问题是它只有在没有打开其他 excel 文件时才会执行。
【解决方案2】:

将 .xlam 复制到 C:\Users[user]\AppData\Roaming\Microsoft\Excel\XLSTART。每次打开 Excel 时都会加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多