VBA Datelast修改了列中列出的path的文件

我有一个专栏:

AP:\Desktop\folderdestination\test.txt P:\Desktop\folderdestination\test2.txt 

我想知道最后修改的列中的文件的date。 你能帮我吗 ?

  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 

您不能使用FSO.DateLastModified因为FSO.DateLastModified是一个File对象而不是FileSystemObject本身。

您可以通过设置FSO引用来find您想要的文件的信息:

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的时间戳string,你可以根据当前的date插入。