Excel VBA:Shell可以在另一个Excel实例中的工作簿中运行宏

卡梅伦

例如这样的事情来在新实例中打开工作簿,然后启动宏:

外壳(Excel.exe workbook.xlsm!macro1)

或者,如果工作簿已经打开,则:

外壳(xlObject macro1)

最重要的是使用Shell,以便在宏单独运行时继续执行代码。如果不可能的话,也许我可以Shell(file.bat)到一个可以做同样事情的批处理文件。批处理文件是什么样的?

谢谢你。

利维坦

您不能从命令行(包括命令行管理程序)在主机应用程序内执行VBA代码。但是,有两种选择(Excel#1是当前打开的文件,Excel#2是您要在其中运行代码的文件):

  1. 把你想要到Excel#2工作簿的运行代码Workbook_Open的事件处理程序,以便将执行每次打开该文件时-的independet怎么就被打开了。
  2. 让Excel#1Excel.Application在VBA中创建一个新对象,然后在该应用程序中打开Excel#2。现在,您可以Run()在Excel#2的应用程序对象上调用该方法以从Excel#2执行代码,但这将与Excel#1的代码同步进行。但是,您可以使用Excel#2应用程序的OnTime()方法来延迟宏执行,在这种情况下,当延迟已过去并且代码在Excel#2的应用程序中异步运行时,Excel#2的应用程序将调用该代码。

选项2的示例代码如下所示:

Public Function RemoteRun(ByVal strFile As String) As Application
    Dim app As Application
    Dim wb As Workbook

    Set app = New Application
    Set wb = app.Workbooks.Open(strFile)
    app.OnTime Now + 1 / 24 / 60 / 60, "RemoteMacro"

    Set RemoteRun = app
End Function

确保将返回值(Excel#2的应用程序对象)存储在某个位置,以便它不会自动关闭(它仍然必须异步运行RemoteMacro)。如果您不希望Excel#1的代码管理Excel#2的应用程序对象的生存期VisibleTrue则将属性设置为也可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel宏将工作簿保存在另一个Excel会话中

来自分类Dev

您可以在另一个 Excel 工作表中运行宏吗?

来自分类Dev

Excel VBA onkey宏在另一个宏运行时可以正常工作

来自分类Dev

Excel宏(VBA)对照另一个工作簿中的列表检查单元格值

来自分类Dev

Excel宏-针对另一个工作簿运行

来自分类Dev

使用VBA通过个人工作簿宏打开另一个Excel文件

来自分类Dev

VBA Excel:在另一个工作簿中查找字符串的功能

来自分类Dev

使用Excel VBA修改另一个工作簿中的.zoom属性

来自分类Dev

从另一个工作簿中的另一个工作表在一个工作簿中的一个Excel工作表上执行筛选宏

来自分类Dev

从另一个excel文件运行一个excel文件中存在的宏

来自分类Dev

Excel VBA-我可以在另一个工作簿上处理数据吗?

来自分类Dev

Excel VBA-我可以在另一个工作簿上处理数据吗?

来自分类Dev

如何通过另一个工作簿中的 VBA 对象名称引用 Excel 工作表?

来自分类Dev

在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

来自分类Dev

VBA在excel和detach的另一个实例中运行代码

来自分类Dev

excel链接到同一工作簿中的另一个工作表

来自分类Dev

C#打开excel工作簿后,如何防止用户在同一excel实例中打开另一个excel文件(通过Windows)?

来自分类Dev

从一个工作簿到另一个工作簿的 Excel 宏数据传输

来自分类Dev

Excel VBA:对另一个工作簿中的列中的数据进行计数并在主工作簿中输入计数器

来自分类Dev

另一个工作簿上的单元格中的VBA Excel增量数字值?

来自分类Dev

Excel VBA-如何清除另一个应用程序中另一个工作簿上的剪贴板?

来自分类Dev

Excel VBA-如何清除另一个应用程序中另一个工作簿上的剪贴板?

来自分类Dev

Excel VBA 宏 - 找到两列中的单元格与另一个工作簿中的行和列匹配的单元格位置,然后粘贴一个值

来自分类Dev

Power Query / Power BI从另一个Excel工作簿中查找数据

来自分类Dev

Excel VBA宏:在一个工作表中查找/匹配单元格到另一个工作表中的列

来自分类Dev

Excel VBA-创建一个宏,将活动工作表名称插入另一个工作表单元的论坛中

来自分类Dev

Excel 2010-根据工作簿中另一个工作表的数据自动填充工作表

来自分类Dev

在另一个Excel VBA中运行一个For循环

来自分类Dev

在另一个Excel VBA中运行一个For循环

Related 相关文章

  1. 1

    Excel宏将工作簿保存在另一个Excel会话中

  2. 2

    您可以在另一个 Excel 工作表中运行宏吗?

  3. 3

    Excel VBA onkey宏在另一个宏运行时可以正常工作

  4. 4

    Excel宏(VBA)对照另一个工作簿中的列表检查单元格值

  5. 5

    Excel宏-针对另一个工作簿运行

  6. 6

    使用VBA通过个人工作簿宏打开另一个Excel文件

  7. 7

    VBA Excel:在另一个工作簿中查找字符串的功能

  8. 8

    使用Excel VBA修改另一个工作簿中的.zoom属性

  9. 9

    从另一个工作簿中的另一个工作表在一个工作簿中的一个Excel工作表上执行筛选宏

  10. 10

    从另一个excel文件运行一个excel文件中存在的宏

  11. 11

    Excel VBA-我可以在另一个工作簿上处理数据吗?

  12. 12

    Excel VBA-我可以在另一个工作簿上处理数据吗?

  13. 13

    如何通过另一个工作簿中的 VBA 对象名称引用 Excel 工作表?

  14. 14

    在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

  15. 15

    VBA在excel和detach的另一个实例中运行代码

  16. 16

    excel链接到同一工作簿中的另一个工作表

  17. 17

    C#打开excel工作簿后,如何防止用户在同一excel实例中打开另一个excel文件(通过Windows)?

  18. 18

    从一个工作簿到另一个工作簿的 Excel 宏数据传输

  19. 19

    Excel VBA:对另一个工作簿中的列中的数据进行计数并在主工作簿中输入计数器

  20. 20

    另一个工作簿上的单元格中的VBA Excel增量数字值?

  21. 21

    Excel VBA-如何清除另一个应用程序中另一个工作簿上的剪贴板?

  22. 22

    Excel VBA-如何清除另一个应用程序中另一个工作簿上的剪贴板?

  23. 23

    Excel VBA 宏 - 找到两列中的单元格与另一个工作簿中的行和列匹配的单元格位置,然后粘贴一个值

  24. 24

    Power Query / Power BI从另一个Excel工作簿中查找数据

  25. 25

    Excel VBA宏:在一个工作表中查找/匹配单元格到另一个工作表中的列

  26. 26

    Excel VBA-创建一个宏,将活动工作表名称插入另一个工作表单元的论坛中

  27. 27

    Excel 2010-根据工作簿中另一个工作表的数据自动填充工作表

  28. 28

    在另一个Excel VBA中运行一个For循环

  29. 29

    在另一个Excel VBA中运行一个For循环

热门标签

归档