2014-10-07 56 views
1

我已經看到一些非常相似的問題,但是他們都沒有找到我正在尋找的答案。其中一些沒有回答。宏以驗證上次修改文件的時間

我有一個VBA宏,通過搜索文件和驗證文件創建時驗證在某個日期(在這種情況下,昨天)中創建的所有文件。由於宏在互聯網中被發現,我不確定這些對象是如何工作的。

我想知道是否有一種方法來改變fill.DateCreated類似的東西,但不是在文件創建時檢查日期,宏將驗證文件被修改時。起初它似乎很簡單,但現在我真的很難得到這個。誰能幫我這個?

Sub VerifyNewFiles() 

Dim n As String, msg As String, d As Date 
msg = "" 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set fils = fso.GetFolder("C:\Users\Desktop\").Files 

For Each fil In fils 
    n = fil.Name 
    d = fil.DateCreated 

    If d >= Date - 1 Then 
     msg = msg & n & vbTab & d & vbCrLf 
    End If 
Next fil 

MsgBox msg 

Set fso = Nothing 

End Sub 

回答

2

f.DateLastModified可能會爲你做。

如果您通過VBE中的工具 - >參考添加對Microsoft Scripting Runtime庫的引用,您可以儘早綁定對象並獲得智能感。

Sub VerifyNewFiles() 

    Dim fName As String, msg As String, fDate As Date 


    Dim fso As New FileSystemObject 
    Set fils = fso.GetFolder("C:\Users\" & Environ$("Username") & "\Desktop\").Files 

    Dim fil As File 
    For Each fil In fils 

     fName = fil.Name 
     fDate = fil.DateLastModified 

     If fDate >= Date - 1 Then msg = msg & fName & vbTab & fDate & vbCrLf 
    Next fil 

    MsgBox msg 

    Set fso = Nothing 
End Sub 

有庫引用(Microsoft腳本運行時)添加到你的項目,你可以打開對象瀏覽器F2和選擇庫,探索它

enter image description here

+0

偉大,感謝您的提示! – dekio 2014-10-07 16:02:02

1

看起來你應該在每個循環的fil對象中使用DateLastModified屬性。所以這個:

d = fil.DateCreated 

會變成這樣:

d = fil.DateLastModified 

我建議你看看here有關DateLastModified屬性的詳細信息。

相關問題