我在寫入的兩個VBA腳本中遇到了一個相當奇怪的錯誤,並且無法完全將我的手指放在問題可能位於何處。 ..VBA「殺死文件」在第一次運行時不起作用,但在所有後續運行中
這是關於兩個VBA宏處理相同的功能,一個用於Word和一個用於Excel。 什麼宏不被解析的某些信息到被這樣創建一個臨時的.txt文件:
Dim Appl
Set Appl = CreateObject("WScript.Shell").Exec("cmd.exe /k im viewissue " & issue & " > " & "D:\temp" & issue & ".txt")
Appl.Terminate
隨後的一些信息是從.txt文件提取並寫入了Excel/Word文件resprectively。
編輯:作爲這樣:編輯的
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"
一切正常,沒有任何問題:在創建文件,信息提取工作,文件將被刪除......除了在你第一次嘗試運行它。
第一次嘗試運行它時(在剛剛啓動的計算機上),您會收到一條「連接到kill命令行」的「Runtime Error 70:Access denied」。 如果你只是取消錯誤消息窗口,然後再試一次,它可以正常工作。
我檢查以下內容:
- .txt文件創建(甚至在第一次運行)
- 權限設置正確,以便能夠手動刪除它沒有問題
- 啓動後Word和Excel宏上的相同問題
- 在Word上運行腳本(帶有錯誤消息)消除了第一次運行Excel腳本時的問題,反之亦然(即使刪除了擱淺的.txt文件錯過後嘗試)
我真的不知道問題可能是什麼......不太明白第一次運行和後續運行之間的區別。
任何類型的提示都非常感謝。 乾杯。
編輯:在另一方面,我設法排除這種可能性,即FileSystemObject對象是問題的根源,因爲我不到底用的什麼文件運行腳本時得到了同樣的問題。
嘗試之前的Application.Doevents。 – Jochen
Jochen如何以及在哪裏調用函數? – budekatude