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

时间:2018-08-24 14:09:07

标签: excel vba excel-vba

我注意到用户正在修改excel工作簿,但是SaveDate的日期尚未更新。我们想知道上一次更新他们的工作簿的时间。

据我所知 Workbook.BuiltinDocumentProperties集合不包含ModifiedDate的属性。有什么方法可以告诉我们的用户保存,以便更新SaveDate?

还是我们可以从VBA实际获取修改日期?

1 个答案:

答案 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进行操作。