我有一栏:
A
P:\Desktop\folderdestination\test.txt
P:\Desktop\folderdestination\test2.txt
我想知道列中文件的最后修改日期。你能帮我吗 ?
Set workboo = Workbooks.Open("P:\Desktop\Column.xlsx")
Set worksh = workboo.Worksheets("date_last_modified")
Dim FSO As FileSystemObject
Dim rngCell As Range
Dim rngFiles As Range
dim destinationfolder as string
dim dateLast as date
destinationfolder="P:\Desktop\folder"
lastcolumn = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
For icol = 1 To lastcolumn Step 2
lastLigne = Cells(Rows.Count, icol).End(xlUp).Row
For Each rngCell In rngFiles.Cells
strFile = Right(rngCell.Value, Len(rngCell.Value) - InStrRev(rngCell.Value, "\"))
'without extension
Filename = Left(strFile, (InStr(strFile, ".") - 1))
filepath = worksh.Cells(rngCell).Value
dateLast=Filedatetime(rngCell.Value)
If Dir(destinationFolder & dateLast & strFile, 16) = "" Then
FSO.CopyFile rngCell.Value, destinationFolder & dateLast & strFile
End If
答案 0 :(得分:1)
您无法使用FSO.DateLastModified
,因为DateLastModified
属于File
对象,而不是FileSystemObject
本身。
您可以通过设置所需文件的FSO参考来查找信息:
Set oFile = FSO.GetFile("pathToFileHere")
然后您可以使用以下命令访问文件属性:
oFile.DateLastModified
..或者实际上是其他任何一个属性中的任何一个(有关可用内容的更多信息,请参阅MSDN。
如果你想在时间戳中使用它,我会像这样生成它们:
timestamp = Year(Now) & Right("00" & Month(Now),2) & Right("00" & Day(Now), 2) & "_" & Right("00" & Hour(Now), 2) & Right("00" & Minute(Now),2) & Right("00" & Second(Now),2)
这为您提供了yyyymmdd_hhmmss
格式的时间戳字符串,您可以根据当前日期插入该字符串。