在Excel中通过一个列循环DateLastModified函数

我有一个工作表的数据,但我需要添加数据创build的时间。 这次是我从中获取数据的文件的“上次修改时间”。

我已经得到了所有的文件名,如工作表第一列中的“filename.txt”,所以每一行数据都可以被引用到它的文件中。 我有这个function来从文件名拉LastModifieddate:

Function FileLastModified(strFullFileName As String) strFullFileName = "C:\...\filefolder\" + Range("A1").Value Dim fs As Object, f As Object, s As String Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFile(strFullFileName) s = UCase(strFullFileName) & vbCrLf s = f.DateLastModified FileLastModified = s Set fs = Nothing: Set f = Nothing End Function 

现在我想让函数遍历A列中的所有文件名,并将所有LastModified-Times放在D列。那么如何编辑这个

 strFullFileName = "C:\.....\" + Range("A1").Value 

自动拉A列的文件名?

像这样的东西?

 Dim FSO As Object: Set FSO = CreateObject("Scripting.FileSystemObject") Dim i As Long Dim n As Long Dim filenames As Variant Dim lastModifiedTimes As Variant 'How many filenames are there? (should tailor this to your exact situation) n = Range("A:A").Find("*", Range("A1"), SearchDirection:=xlPrevious).Row filenames = Range("A1").Resize(n, 1).Value 'load all fnames from sheet to array ReDim lastModifiedTimes(1 To n, 1 To 1) For i = 1 To n lastModifiedTimes(i,1) = _ FSO.GetFile("C:\.....\" & filenames(i,1)).DateLastModified Next i 'Slap times array onto sheet Range("D1").Resize(n, 1).Value = lastModifiedTimes 

请注意,我摆脱了你的FileLastModified包装函数,因为它实际上只是包装一件东西,而且可以用一行代码来代替。