我正在尝试使用VBA创建Excel报表,以显示从输入文件中读取的所有文件路径名称的“上次修改日期”属性值。这就是我获得LastModified日期的方式:
Set fso = CreateObject("Scripting.FileSystemObject")
Set currentFile = fso.GetFile(inputFile)
Sheet.Cells(r, 2).Value = currentFile.DateLastModified '<<<Incorrect value
为每个读取的文件显示的值是每种情况下的当前系统时间。 Windows资源管理器显示正确的上次修改时间。当我调试时,我发现DateLastModified属性实际上与Excel报告显示的值相同。
为什么DateLastModified函数似乎不起作用?
不确定这是否相关,但我的电脑上确实有msvbvm60.dll VB运行时。这可能是一个管制问题吗?我无法从VB.NET项目中设置对scrrun.dll的引用。我按照说明here:从scrrun.dll创建一个新库。看起来它创建了一个具有不同名称的库dll,Scripting.dll,我能够引用它。不确定这些是否相关。
答案 0 :(得分:1)
创建文件时DateLastModified
属性为Null
。某些进程会在文件关闭时更新该值,但其中许多进程不会。
答案 1 :(得分:0)
道歉。这是一个愚蠢的编码错误。我正在检查输入文件上的修改日期,而不是从文件中读取的路径。杜!
如果不值得删除,这取决于社区。 p>