2016-09-20 20 views
1

これにのfairという数字があり、重複しないように努力しています(スタックオーバーフローの3番目のルール)。私はいくつかresearchをしました、うまくいけばそれはそうではありません。Excelを起動してマクロを実行するVBSスクリプト

私はこのスクリプトを使ってファイルを開いてマクロを実行しようとしていますが、自分のブックから開くことを理想的には考えていますが、どこからでも妥協することができます:

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 

ただし、サーバー上またはCドライブ内にあるかどうかに関係なく、このスクリプトではExcelファイルが開かれません。

私も試してみました:

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の("エクセル: セットxlApp = CreateObjectの(、 "まずExcel.Application") –

+0

有数のコンマを削除します。アプリケーション ") ' –

答えて

1

@AlexKのおかげです。間違った場所でコンマになることが判明しました。

またthis post変更のおかげ:

xlApp.Run "Module1.MyMacro" 

へ:エラー時に

xlApp.Run xlBook.name & "!Module1.MyMacro" 
関連する問題