VBA Datelastmodified一个文件,该列在列中列出

时间:2016-06-07 13:15:48

标签: excel vba excel-vba

我有一栏:

            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

1 个答案:

答案 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格式的时间戳字符串,您可以根据当前日期插入该字符串。