2016-05-27 7 views
0

VBAで "im exportissues 123456"クエリを使用してPTC(MKS)からCR(変更要求)ステータスを取得しようとしています。私のコードが終了しない限り、ステータスシート(クエリで開く新しいExcelシート)を開きます。以下は私のコードのスニペットです。コードがVBAで終了しない限りシェルでExcelが開かない

Sub Query_CR_Status() 

    shell_output = Shell("im exportissues 123456", 1)  'this should open up a new excel sheet containing CRs) 

    Application.Wait (Now + TimeValue("0:00:20"))   'waiting 20sec 

    'here: My code which will read information from the above generated excel sheet 
End Sub 

しかし、ここで私の問題は、新しいExcelシートで、それは「End Subの」

+0

「Application.Wait」を取り除くと... –

+0

はい私は遅延を取り除きました。 Sub Query_CR_Status() shell_output = Shell( "im exportissues 123456"、1)これはCRを含む新しいExcelシートを開くはずです) ここに:私のコードはどのようになりますか?上記の生成されたExcelシートから情報を読み取る End Sub – bikash

+0

しかし、処理に時間がかかるため、遅延が必要です。 – bikash

答えて

0

Application.Wait()は、指定された時間のためのをやってからアプリケーションを防ぐことができますするために達しない限り、オープンscroll down toパソコンへ転送。だから、もしあなたがブックを開くコマンドをシェルすると、アプリケーションはを待つとが待っていると遅れます。

あなたがしようとするようなものを使用することによってこの問題を回避することができます

Sub Query_CR_Status() 

Dim wbC As byte 
wbC = Workbooks.Count 

    shell_output = Shell("im exportissues 123456", 1) 

    While Workbooks.Count = wbC 
     DoEvents '// Process pending messages until workbook count changes 
    Wend 

    '// Rest of code 

End Sub 

はまた、チップピアソンはこのに適しかもしれない機能を作成しました。

+0

返事をありがとう、私はすでにあなたが与えた説明を実装しました。チップピアソンShellAndWait関数については、実装しようとしましたが、コードでShellAndWait()関数を使用すると、他のモジュールと同じように関数を認識することができません。上記の – bikash

+0

溶液は役に立たなかった。 – bikash

+0

なぜですか?正確に何がうまくいかなかったのですか?私が投稿した 'DoEvents'コードを使ってみましたか? –

関連する問題