【问题标题】:Open Excel and Run Macro using VBScript [duplicate]使用 VBScript 打开 Excel 并运行宏 [重复]
【发布时间】:2016-09-20 11:32:29
【问题描述】:

我正在尝试使用此 VBScript 打开文件并运行宏。理想情况下,我会从我的个人工作簿中打开它,但作为妥协,我很乐意从任何地方运行。

Option Explicit

On Error Resume Next

RunExcelMacro

Sub RunExcelMacro()

Dim xlApp
Dim xlBook

If CheckAppOpen("excel.application")  Then
       'MsgBox "App Loaded"
        Set xlApp = GetObject(, "Excel.Application")   
Else
        ' MsgBox "App Not Loaded"
        Set  xlApp = CreateObject(,"Excel.Application")   
End If

xlApp.visible = True
set xlBook = xlApp.Workbooks.Open ("C:\Users\....\PERSONAL.xlsb", 0, True)
xlApp.Run "Module1.My Macro"
xlApp.Quit()

xlBook = Nothing
xlApp = Nothing

End Sub

该脚本不会打开任何 Excel 文件,无论它是在服务器上还是在我的 C 驱动器中。

这里有一个fairposts。我做了一些research

我试过了:

Set xlApp = GetObject("Excel.Application")  
Set xlApp = CreateObject("Excel.Application")  

还有

Dim Filename as string
Filename = "C:/....."
set xlBook = xlApp.Workbooks.Open (Filename)

我尝试打开 .xls、.xlsm、.xlsb 都无济于事。

我没有收到任何错误消息。 cmd控制台打开然后关闭

Microsoft (R) Windows 脚本宿主版本 5.8
版权所有 (C) 微软公司。保留所有权利。

【问题讨论】:

  • 删除 On Error Resume Next 并从 cmd 窗口 (cscript.exe your.vbs) 运行它以查看错误消息。
  • 谢谢!我现在得到:“Microsoft VBScript 运行时错误:类型不匹配”的行:Set xlApp = CreateObject(, "Excel.Application")
  • 去掉前导逗号:Set xlApp = CreateObject("Excel.Application")
  • 向导,它现在正在打开文件,但宏没有运行。 “Microsoft Excel:无法运行宏 'Macro1.My_macro'。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
  • 宏名中不能有空格,您正在尝试运行一个名为“我的宏”的宏,这是一个非法的子名称。

标签: excel vba vbscript


【解决方案1】:

感谢@AlexK。原来是逗号放错了地方。

也感谢this post改了:

 xlApp.Run "Module1.MyMacro"

到:

   xlApp.Run xlBook.name & "!Module1.MyMacro"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2015-09-19
    • 2017-08-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多