从命令行或批处理文件运行Excel宏的方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (240)

我有一个ExcelVBA宏,在从批处理文件访问该文件时需要运行它,但不是每次打开它时都运行它(因此没有使用打开的文件事件)。是否有方法从命令行或批处理文件运行宏?我不熟悉这样的命令。

假设是WindowsNT环境。

提问于
用户回答回答于

可以启动Excel,打开工作簿,并从VBScript文件中运行宏。

将下面的代码复制到记事本中。

更新“MyWorkbook.xls“和”迈宏“参数。

用VBS扩展保存它并运行它。

Option Explicit

On Error Resume Next

ExcelMacroExample

Sub ExcelMacroExample() 

  Dim xlApp 
  Dim xlBook 

  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook = xlApp.Workbooks.Open("C:\MyWorkbook.xls", 0, True) 
  xlApp.Run "MyMacro"
  xlApp.Quit 

  Set xlBook = Nothing 
  Set xlApp = Nothing 

End Sub 

运行宏的关键行是:

XlApp.Run“MyMacro”

用户回答回答于

最简单的方法是:

1)从批处理文件中启动Excel,打开包含宏的工作簿:

EXCEL.EXE /e "c:\YourWorkbook.xls"

2)从工作簿的宏调用Workbook_Open事件,例如:

Private Sub Workbook_Open()
    Call MyMacro1          ' Call your macro
    ActiveWorkbook.Save    ' Save the current workbook, bypassing the prompt
    Application.Quit       ' Quit Excel
End Sub

现在,这将将控件返回到批处理文件以执行其他处理。

扫码关注云+社区