打开Excel并使用VBScript运行宏

3

我正在尝试使用这个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。我做了一些研究
我尝试了以下方法:
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 文件,但都没有成功。
我没有收到任何错误消息。命令行控制台会打开,然后显示以下内容并关闭:

Microsoft (R) Windows Script Host Version 5.8
版权所有 (C) Microsoft Corporation。保留所有权利。


1
移除 On Error Resume Next 并从 cmd 窗口 (cscript.exe your.vbs) 运行以查看错误消息。 - Alex K.
谢谢! 现在我得到了以下错误: “Microsoft VBScript运行时错误:类型不匹配” 出现在这一行: Set xlApp = CreateObject(, "Excel.Application") - REdim.Learning
移除前导逗号:Set xlApp = CreateObject("Excel.Application") - Alex K.
向导,现在正在打开文件,但宏没有运行。 “Microsoft Excel:无法运行宏'Macro1.My_macro'。该宏可能在此工作簿中不可用,或者所有宏都已禁用。” - REdim.Learning
宏名称不能包含空格,您正在尝试运行一个名为“我的宏”(My Macro)的宏,这是子程序的非法名称。 - jkpieterse
1个回答

2
感谢 @AlexK。结果发现逗号放错了位置。
此外,感谢这篇文章,更改了:
 xlApp.Run "Module1.MyMacro"

收件人:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接