查找已关闭工作簿的上次保存时间

时间:2017-09-27 12:55:48

标签: excel vba excel-vba

我正在尝试创建一个宏,可以在上次更新另一个工作簿时引用它而不打开它。

我找到了这个,但它只适用于活动工作簿:

Function LastModified() as Date

  LastModified = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")

End Function

我想要的是这样的:

Function LastModified() as Date

  LastModified = path."c:/test.xlsx".BuiltinDocumentProperties("Last Save Time")

End Function

但那当然没有用。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

Filesystemobject工作但我需要将它打印到单元格,因为它不会调用该函数。

FileDateTime虽然为我工作:)

Function LastModified() as Date

  LastModified = FileDateTime("filepath")

End Function

答案 1 :(得分:0)

这样的事情应该可以解决问题。您需要在此示例中使用FileSystemObject。我在示例中使用了后期绑定,但如果切换到早期绑定,可能会获得一些性能改进。

Option Explicit

Private Function LastModified(ByRef filePath As String) As Date
    'Set a default value
    LastModified = vbNull

    If Len(Trim$(filePath)) = 0 Then Exit Function

    With CreateObject("Scripting.FileSystemObject")
        If .FileExists(filePath) Then LastModified = .GetFile(filePath).DateLastModified
    End With

End Function

Sub SOExample()
    'Specify a path to a file you want to get LastModified Date
    Dim filePath As String: filePath = "MyPathToAFile"

    'Return a date or vbNull
    Dim myDate As Date: myDate = LastModified(filePath)

    'Output the Date if it isn't vbNull
    If Not myDate = vbNull Then Debug.Print myDate
End Sub