上次修改日期与保存日期的 Excel VBA 工作簿属性



我注意到用户修改了 excel 工作簿,但保存日期的日期没有更新。我们想知道上次更新他们的工作簿是什么时候。

据我所知Workbook.BuiltinDocumentProperties集合不包括 ModifiedDate 的属性。有没有办法告诉我们的用户保存以便更新保存日期?

或者我们实际上可以从 VBA 获取修改日期吗?

我不相信有一个本机函数来获取文件的Date Modified日期,但您可以轻松地使用 Windows 脚本引用来获取File.DateLastModified属性FileSystemObject

我不完全确定您希望如何实现这一点,但您可以考虑以下两个示例:

触发以下示例时,它将到达代码以提示用户ActiveWorkbook是否有未保存的更改以及上次保存时间是否超过 15 分钟前。

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim wb As Workbook
Set wb = ActiveWorkbook
If DateDiff("n", fso.getfile(wb.FullName).DateLastModified, Now) > 15 And wb.Saved = False Then
'prompt user to save or save for them
End If

如果可能打开了多个工作簿,则可能需要使用下一个示例,该示例在完成与上述相同的操作之前遍历所有打开的工作簿。

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim wb As Workbook
For Each wb In Application.Workbooks
Dim wbFile As Object
Set wbFile = fso.getfile(wb.FullName)
Debug.Print "filename:  " & wbFile.name & vbCrLf & _
"modified:  " & wbFile.DateLastModified & vbCrLf
If DateDiff("n", wbFile.DateLastModified, Now) > 15 And wb.Saved = False Then
'prompt user to save or save for them
End If
Next wb

如果由于某种原因您必须遍历目录以查找文件,该站点提供了一个有关如何执行此操作的很好示例。

最新更新