2014-11-14 65 views
0

我想刪除一個文本文件,它包含文件名稱標題和當前年份中的前一個日期月份的一部分。vba如果文件存在,然後刪除

因此,舉例來說,如果今天是十一月,這將是本月11號和上個月將是本月10號

,所以我想刪除它包含月10號,因爲這是前一個月的文件。

由於某種原因,我的代碼導致Excel崩潰並沒有迴應,有人可以告訴我怎麼可以改變我的代碼得到這個工作,感謝

Dim iMonth As Integer 
Dim iYear As Integer 
iMonth = Month(Date) - 1 
iYear = Year(Date) 
Dim DirFile As String 
DirFile = "P:\Log (" & iMonth & "-" & iYear & ")*.txt" 
Do While DirFile <> "" 
Count = Count + 1 
Loop 
If Count > 0 Then 
SetAttr DirFile, vbNormal 
'Then delete the file 
Kill DirFile 
End If 
+0

使用Windows中的標準COM對象Scripting.FileSystemObject可能會獲得更好的行爲。 – Bathsheba

回答

0

然後你給串DirFile一個創造價值while循環迴路,而串DirFile不爲空,所以它會永遠運行下去(鎖定了Excel文件),你需要的代碼,將檢查文件是否確實存在,然後將其刪除

DirFile = "P:\Log (" & iMonth & "-" & iYear & ")*.txt" 
Do While DirFile <> "" 'always true 
Count = Count + 1 
Loop 

嘗試使用

Dim iMonth As Integer 
Dim iYear As Integer 
iMonth = Month(Date) - 1 
iYear = Year(Date) 
Dim DirFile As String 
DirFile = "P:\Log (" & iMonth & "-" & iYear & ")*.txt" 

    If Len(Dir(DirFile)) <> 0 Then 
     SetAttr DirFile, vbNormal 
     Kill DirFile 
    End If 
相關問題