宏以验证上次修改文件的时间

时间:2014-10-07 15:32:50

标签: excel vba file date

我看过一些非常相似的问题,但没有一个人能找到我想要的答案。其中一些人没有得到回答。

我有一个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 个答案:

答案 0 :(得分:3)

f.DateLastModified可能会为你做。

如果您通过工具添加对Microsoft Scripting Runtime库的引用 - >在VBE中的引用,您可以提前绑定您的对象并获得它们的智能。

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 Scripting Runtime)项目,您可以打开对象浏览器 F2 并选择要探索它的库

enter image description here

答案 1 :(得分:1)

您似乎应该在每个循环中的fil对象上使用DateLastModified属性。所以这个:

d = fil.DateCreated

会变成这样:

d = fil.DateLastModified

我建议您查看here以获取有关DateLastModified属性的更多信息。