是否可以在 excel 文件外部运行宏?

Is it possible to run a macro externally on an excel file?

提问人:M Muaz 提问时间:3/22/2021 最后编辑:PᴇʜM Muaz 更新时间:3/22/2021 访问量:842

问:

目前,我每天将数据从软件导出到 excel 文件。

有很多重复性任务,所以我创建了一个宏。

  1. 我打开新导出的 excel 文件,然后将其另存为“启用宏的工作表”

  2. 我打开启用宏的工作表

  3. 我将宏导入 excel 文件

  4. 我运行宏

有没有办法在不使用 VBS 或任何其他方式执行上述所有步骤的情况下运行宏?

我不知道是否有解决方案,但我更希望外部 VBA 操作员询问导出文件的位置,然后完成其余的工作

Excel VBA

评论

0赞 Nathan_Sav 3/22/2021
使用宏请求文件名,然后使用对象运行,而不是说你说 所以一个控制工作簿,它只是打开工作簿并运行所述宏Workbooksheets(1).range("a1:A10")wbMyWorkbookOpened.sheets(1).range("a1:A10")
0赞 FaneDuru 3/22/2021
是否仅导入宏以从新创建的工作簿中运行它们?将来还会经常使用吗?您可以从另一个工作簿或另一个应用程序(例如 VBScript)运行 maro,但如果在不同的工作簿或外接程序中具有必要的宏,则可能不是必需的。它们可能必须进行调整,以不仅仅引用它们所属的工作簿。你能更好地解释你真正想要完成什么吗?

答:

2赞 Pᴇʜ 3/22/2021 #1

您可以轻松打开任何其他工作簿,并在该工作簿上运行任何命令。因此,您可以在 Excel 文件中包含以下宏,并在其中操作数据。MyMacroFile.xlsmC:\Temp\WorkbookToRunMacroOn.xlsx

Option Explicit

Public Sub DoTasksOnOtherWorkbook()
    'open another workbook
    Dim OpenWorkbook As Workbook
    Set OpenWorkbook = Application.Workbooks.Open(Filename:="C:\Temp\WorkbookToRunMacroOn.xlsx")
    
    OpenWorkbook.Worksheets("Sheet1").Range("A1").Value = "Changed A1 in another workbook"
    
    'don't forget to close the workbook and save or not
    OpenWorkbook.Close SaveChanges:=True
End Sub

如果要要求用户选择要打开的文件,可以使用 Application.FileDialog 属性,该属性返回一个文件名,然后可以在 中使用它来打开它。Application.Workbooks.Open