Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次打开excel文件时执行xlam_Excel_Excel Addins_Autoexec_Vba - Fatal编程技术网

每次打开excel文件时执行xlam

每次打开excel文件时执行xlam,excel,excel-addins,autoexec,vba,Excel,Excel Addins,Autoexec,Vba,当我打开excel文件时,我有以下代码来执行xlam文件: Sub Auto_Open() Application.OnTime Now + TimeValue("00:00:05"), "readCsv" End Sub Sub readCsv() .... End Sub 我将其作为外接程序添加,以便打开的每个文件都包含xlam文件。如果没有打开其他excel文件,它工作得很好,但是在没有关闭excel文件的情况下,我打开了第二个excel

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

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

   Sub readCsv()
      ....
   End Sub
我将其作为外接程序添加,以便打开的每个文件都包含xlam文件。如果没有打开其他excel文件,它工作得很好,但是在没有关闭excel文件的情况下,我打开了第二个excel文件,它什么也不做。即使打开了另一个excel文件,我也需要执行代码。可能吗


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

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

如果上述情况不适用,您可以准备外接程序并为用户安装(如果是这样的话,请用谷歌搜索)

编辑:

如何在所有打开的文件中获取加载项

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

现在,您将能够看到excel顶部链接了加载项函数的图标-单击该图标即可运行,它将永远保留在那里(如果错过,您可以重新应用设置)


该过程适用于2010年,适用于2007年,应该是类似的……对于2003年,有一种不同的实现方法……

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

这是不够的代码。你怎么打开这个文件?考虑打开它只读。你有错误吗?你试过调试单步代码吗?为什么还不够?readCsv中的内容并不重要,因为它运行良好。。。问题是,只有在没有其他excel文件打开的情况下,“自动打开”才会起作用,如果我将readCsv放入此工作簿中,也会发生同样的情况。我只需双击要打开的excel文件即可打开该文件。希望这个解释会有帮助。它不起作用。。。首先,我将工作簿的Auto_open()替换为Auto_open(),它甚至无法与第一个打开的excel文件一起工作。然后我在网上看到工作簿_Open()一定在这个工作簿里,我把它放在了那个里。第一个打开的excel文件有效,但第二个文件无效。。。所以基本上,Auto_open()和Workbook_open()给了我相同的结果。你知道,为了执行Workbook_open(),你打开的每个文件中都必须有代码。我把我的宏作为外接程序。我创建了一个xlam文件并将其放入regedit。这做得很好,因为它在我打开的所有文件中都有效。问题是,如果我在第二个excel文件之前打开了另一个excel文件,我什么也不做。谢谢你的回答。我想要的是在打开excel文件时启动宏,而不是创建一个按钮来创建宏。为此,请创建一个xlam文件并将其添加到外接程序中。但我的问题是,它只在没有打开其他excel文件时执行。