如何从命令行启动Excel宏(没有Worksheet_Open事件)?

M3H*_*HD1 7 excel vba cmd

是否可以从命令行启动Excel宏?

我不想使用该Worksheet_Open事件,只需打开Excel文件.

我需要启动Excel WorkBook中存在的特定宏.

Gov*_*ert 13

使用Windows PowerShell,它具有出色的COM互操作支持.

我有一个名为"Test"的工作簿c:\ TestBeep.xlsm.这是我的成绩单:

PS C:\> $app = New-Object -comobject Excel.Application
PS C:\> $wb = $app.Workbooks.Open("c:\TestBeep.xlsm")
PS C:\> $wb.Name
TestBeep.xlsm
PS C:\> $app.Run("Test")
PS C:\> $app.Quit()
Run Code Online (Sandbox Code Playgroud)

您可以选择添加$app.Visible = $True以使窗口可见.


M3H*_*HD1 8

最后我用了一个VB脚本并从命令行启动它.这是我的解决方案:

Option Explicit

    LaunchMacro

    Sub LaunchMacro() 
      Dim xl
      Dim xlBook      
      Dim sCurPath

      sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
      Set xl = CreateObject("Excel.application")
      Set xlBook = xl.Workbooks.Open(sCurPath & "\MyWorkBook.xlsm", 0, True)        
      xl.Application.Visible = True
      xl.Application.run "MyWorkBook.xlsm!MyModule.MyMacro"
      xl.DisplayAlerts = False      
      xlBook.saved = True
      xl.activewindow.close
      xl.Quit

      Set xlBook = Nothing
      Set xl = Nothing

    End Sub 
Run Code Online (Sandbox Code Playgroud)

  • 是的,但因为这是我自己的答案,我应该等24H :) (3认同)