我看过一些非常相似的问题,但没有一个人能找到我想要的答案。其中一些人没有得到回答。
我有一个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
答案 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 并选择要探索它的库
答案 1 :(得分:1)
您似乎应该在每个循环中的fil对象上使用DateLastModified属性。所以这个:
d = fil.DateCreated
会变成这样:
d = fil.DateLastModified
我建议您查看here以获取有关DateLastModified属性的更多信息。