[英]Pull data from most recent file in folder
Trying to use the most recent file in folder for data. 尝试使用文件夹中的最新文件存储数据。
My problem is that my master excel file wont use the data from the most recent data file (xlsx) to pull the data. 我的问题是我的主excel文件不会使用最新数据文件(xlsx)中的数据来提取数据。 My code currently has the name of the current file (eg.
"Network-2019.xlsm"
) but lets say i insert a file called "network.xlsm, which is posted in the folder later. I want main dataset to recognize this and pull in that data. 我的代码当前具有当前文件的名称(例如
"Network-2019.xlsm"
),但可以说我插入了一个名为“ network.xlsm”的文件,该文件稍后发布在文件夹中。我希望主数据集能够识别此文件并提取数据。
Function GetMostRecentExcelFile(ByVal myDirectory As String, ByVal filePattern As String) As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim myFolder As Object
Set myFolder = fso.getfolder(IIf(Right(myDirectory, 1) = "\", myDirectory, myDirectory & "\"))
Dim currentDate As Date
Dim fname As String
Dim currentFile As Object
For Each currentFile In myFolder.Files
If (currentDate = CDate(0) Or currentFile.DateCreated > currentDate) And currentFile.name Like filePattern _
And InStr(LCase$(currentFile.name), ".xlsx") > 0 And InStr(currentFile.name, "~$") = 0 Then
currentDate = currentFile.DateCreated
fname = currentFile.name
End If
Next currentFile
GetMostRecentExcelFile = fname
End Function
I would suggest something like below, since you are using the FileSystemObject
我建议如下所示,因为您正在使用
FileSystemObject
Note that I used early binding. 请注意,我使用了早期绑定。 The associated intellisense is quite useful, and you can always change to late binding if you need to for any reason.
关联的智能感知功能非常有用,并且出于任何原因,您始终可以更改为后期绑定。
Option Explicit
Function GetMostRecentExcelFile(sFolderPath As String) As String
Dim FSO As FileSystemObject
Dim FO As Folder, FI As File, recentFI As File
Set FSO = New FileSystemObject
Set FO = FSO.GetFolder(sFolderPath)
For Each FI In FO.Files
Select Case FI.Name Like "*.xlsx"
Case True
Select Case recentFI Is Nothing
Case True
Set recentFI = FI
Case False
If FI.DateCreated > recentFI.DateCreated Then
Set recentFI = FI
End If
End Select
End Select
Next FI
GetMostRecentExcelFile = recentFI.Path
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.