我注意到用户正在修改excel工作簿,但是SaveDate的日期尚未更新。我们想知道上一次更新他们的工作簿的时间。
据我所知
Workbook.BuiltinDocumentProperties
集合不包含ModifiedDate的属性。有什么方法可以告诉我们的用户保存,以便更新SaveDate?
还是我们可以从VBA实际获取修改日期?
答案 0 :(得分:1)
我不相信有一个本机函数来获取文件的Date Modified
日期,但是您可以很容易地使用Windows脚本引用FileSystemObject
来获取File.DateLastModified
属性。
我不确定您要如何实现此目标,但是您可以考虑以下两个示例:
触发以下示例时,它到达代码以提示用户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
如果出于某种原因,您不得不在目录中循环查找文件,请this site gives a nice example进行操作。