通过 VBA 更改文件的“上次修改日期”属性

Gof*_*her 2 powerpoint vba

如何使用 VBA 更改 powerpoint 文件的“上次修改日期属性”?尝试在底部设置 f.FileDateModified 时出现错误。这是我到目前为止所拥有的:

    Set oPresentation = Presentations.Open(sFolder & StrFile, , , False)
       Dim fso As Object
       Set fso = CreateObject("Scripting.FileSystemObject")
       Dim oFile As Object
       Dim fileModDate As String
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set f = fs.GetFile(sFolder & StrFile)
       fileModDate = f.DateLastModified
       Set oFile = fso.CreateTextFile(sFolder & StrFile & "meta.txt")
       oFile.WriteLine "Last author: " & oPresentation.BuiltInDocumentProperties("Last author")
       'oFile.WriteLine "Last save time: " & oPresentation.BuiltInDocumentProperties("Last save time")
       oFile.WriteLine "Date last modified " & fileModDate
       oFile.Close

       Call oPresentation.SaveAs(sFolder & StrFile & "x")
       Set f = Nothing
       Set fs = Nothing
       
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set f = fs.GetFile(sFolder & StrFile & "x")
       f.DateLastModified = fileModDate
       
       oPresentation.Close
       Set f = Nothing
       Set fs = Nothing
Run Code Online (Sandbox Code Playgroud)

mus*_*ach 5

此代码将文件设置ModifyDate为任何已关闭文件的当前日期和时间。它不适用于打开的文件,但如果文件打开则不会给出错误。我使用的是 VBA Word,但我想它也适用于 VBA PowerPoint。

Sub SetDateTime(Folder, FileName)
   Dim oFile As Object

   Set oFile = CreateObject("Shell.Application").Namespace(Folder).ParseName(FileName)
   oFile.ModifyDate = FormatDateTime(Date, 2) & " " & FormatDateTime(Time, 3)
   Set oFile = Nothing
 
End Sub
Run Code Online (Sandbox Code Playgroud)

另一件事是日期和时间的格式。FormatDateTime我分别使用带有选项2和 的函数3。请注意两者之间的空格。当然,Date和的值Time可以根据您的需要进行更改。