如何使用 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)
此代码将文件设置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可以根据您的需要进行更改。