2016-09-20 236 views
1

我知道有這fairfair號碼對此,我努力不重複(堆棧溢出的第三條規則)。我做了一些research,所以希望情況並非如此。這是我的問題:VBS腳本打開Excel和運行宏不工作

我想用這個腳本來打開一個文件並運行一個宏,理想情況下我想從我的個人工作簿中打開它,但很高興從任何地方作爲妥協運行:

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驅動器中。

我也試過:

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 Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved.

在此先感謝。

+1

刪除'上的錯誤恢復Next'並從cmd窗口('的Cscript.exe your.vbs')運行這看到錯誤信息。 –

+0

謝謝! 我現在得到︰ 「Microsoft VBScript運行時錯誤:類型不匹配」 爲行: 設置xlApp = CreateObject(,「Excel.Application」) –

+0

刪除前導逗號:'Set xlApp = CreateObject(「Excel。應用程序「)' –

回答

1

感謝@AlexK。原來是錯誤地方的逗號。

也感謝this post改變:

xlApp.Run "Module1.MyMacro" 

到:

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