私は書いた2つのVBAスクリプトでかなり奇妙なエラーに遭遇しました。 ..VBA「キルファイル」は最初の実行では動作しませんが、その後のすべての実行で
これは、Word用とExcel用の2つの同じ機能を処理するVBAマクロです。 何マクロがやっていることは、このようなとして作成された一時的な.txtファイルにいくつかの情報を解析している。
Dim Appl
Set Appl = CreateObject("WScript.Shell").Exec("cmd.exe /k im viewissue " & issue & " > " & "D:\temp" & issue & ".txt")
Appl.Terminate
その後、いくつかの情報は.txtファイルから抽出され、resprectivelyエクセル/ Wordファイルに書き込まれます。
EDIT:ように:編集の
Set FileNum = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\temp" & issue & ".txt", 1)
'Read some lines and write them into the Word/Excel files...
FileNum.Close
終了。マクロがファイルに行われた後
は、それを削除します。
Kill "D:\temp" & issue & ".txt"
すべてが問題なく動作します:ファイルが作成され、情報抽出の作品は、ファイルが削除され...初めての場合を除きますそれを実行しようとします。
初めて起動しようとすると(起動したばかりのマシンで)、「実行時エラー70:アクセスが拒否されました」という行がkillコマンドで接続されます。 エラーメッセージウィンドウをキャンセルしてもう一度やり直しても問題ありません。
私は次のことをチェックしました:
- .txtファイルは問題
- せずに手動で削除することができるように
- 権限が正しく設定されている(でも最初の実行時に)作成されます起動後にWordとExcelの両方のマクロで同じ問題が発生する
- Wordでスクリプトを実行すると(エラーメッセージで)Excelスクリプトの最初の実行時に問題がなくなります。逃した試みの後に)
私は本当に問題がどのようなものかわかりません...最初の実行とそれ以降のものの違いはよく分かりません。
どのようなヒントもありがとうございます。 乾杯。
EDIT:別の注意FileSystemObjectが問題の原因である可能性を排除することができました。なぜなら、ファイルで実際に何も実行せずにスクリプトを実行するときに同じ問題が発生するからです。
前にApplication.Doeventを試してください。 – Jochen
Jochenはどのようにして正確に関数を呼び出しますか? – budekatude