2016-05-26 10 views
0

正常に動作しません。 hidebat.vbsを開き、ファイルを自分のクラウドにアップロードする最小化された.batを開きます。したがって、それは検証されています。エクセルVBAこんにちは、私が命名完璧に働いてバットを持っているの.batを実行しますが、手動でバットを実行すると、

私はそれが何を見て、私はSTART.BATを開くためにExcelを言うとき、それはCMD開き、必要に応じて正確なコマンドを表示START.BATに

pause 

を追加しましたが、それしましたhidebat.vbsは実行されません。

実際に限られた環境から手を出さないようにExcelから実行すると、何らかのパス制約や環境制約があると思います。

Dim path As String 
path = Application.ActiveWorkbook.path 
path = path & "\" 
Dim MY_FILENAME3 As String 
MY_FILENAME3 = path & "start.bat" 

1.

retVal = Shell(MY_FILENAME3, vbNormalFocus) 

' NOTE THE BATCH FILE WILL RUN, BUT THE CODE WILL CONTINUE TO RUN. 
If retVal = 0 Then 
    MsgBox "An Error Occured" 
    Close #FileNumber 
    End 
End If 

2.

PathCrnt = ActiveWorkbook.path 
Call Shell(PathCrnt & "start.bat") 

3.

Dim batPath As String: batPath = path 

Call Shell(Environ$("COMSPEC") & " /c " & batPath & "start.bat", vbNormalFocus) 
:私は3種類の方法での.batを呼び出す試してみましたが、Excelで

誰かが.batファイルを実行しない理由、または正しく実行されるようにするために何ができるかを知りませんか?

注。私はそれがデフォルトのパスを開くためだと思うので、エクセルが保存されている実際のパスと.batファイルがある場所に "cd"と伝えます。

答えて

0

それはそれだったはい、パスがコマンドによっていくつかのランダム/標準/作業/現在のパスに設定されているので、私は追加する必要がありましたした

Print #FileNumber, "cd " & path 

Excelにマクロ

をので、スタート.batは次のようになりました。

cd *path* 
start *path*\hidebat.vbs 

これは将来の私の役に立ちます。

関連する問題