2017-09-25 6 views
0

まず、紛らわしい質問のためにお詫び申し上げます。私は以下のことが私が求めていることについてより多くの説明を与えることを願っています。powershsellスクリプトを呼び出すときにフォルダ変数を使用する方法

VBA内では、Powershellスクリプトの場所を保持するExcelセルを指す変数を使用する必要があります。これはユーザーごとに異なる可能性があります。

以下のコードを実行すると、エラーは発生しません。ウィンドウがポップアップして消えます。私はそれが完璧に動作する場所を入力すると、私は。「それは、構文here-とに何かある」シェル」を考える。

Private Sub Export_Click() 

Dim Asn As String 
Dim QuestionToMessageBox As String 
Dim Power As String 

Shell = Worksheets("Input").Range("A4").Value 

    QuestionToMessageBox = "Are you sure you would like to proceed?" 

    Ans = MsgBox(QuestionToMessageBox, vbYesNo, "Are you sure you would like to proceed?") 

    If Asn = vbNo Then 
     Exit Sub 
    Else 

      Call Shell("powershell -noexit -file ""Shell", vbMaximizedFocus) 
    End If 
MsgBox "The Exportation has completed", vbInformation 
End Sub 

答えて

0

変数名としてVBAコマンドの名前を使用するのは悪い考えです、

Shell "powershell -noexit -file """ & ScriptToRun & """", vbMaximizedFocus 
Shellコマンドのあなたの呼び出し内であることを埋め込むためにそう

Dim ScriptToRun As String 
ScriptToRun = Worksheets("Input").Range("A4").Value 

して、正しい道を - ので、私の最初の提案はScriptToRunのようなものにあなたの変数Shellを変更することです

または多分ちょうど

Shell "powershell -noexit -file " & ScriptToRun, vbMaximizedFocus 

あなたは場所が"秒でラップしたくない場合。 (ファイル/パスは、任意の埋め込みスペースが含まれている場合は通常、二重引用符が必要です。)


また、あなたのコード(asn -V- ans)のタイプミスを持っています。コードモジュールの最初の行にOption Explicitを使用すると、そのようなことを探すのに費やす時間を避けることができます。そうすれば、正しく宣言されていない変数を使用するたびにコンパイラエラーが発生するため、変数ansが宣言されていないことがわかります。

すべての変数を宣言する作業が多少あるかもしれませんが、長期的には時間を節約できます。

関連する問題