我尝试编写一个宏,当单击一个按钮时,该宏会自动将CSV文件导入Excel工作簿。我已经完成了大部分工作,但要弄清楚导入本身(我对VBA没有过多的经验)我录制了一个宏并手动完成。
我得到的结果就是这个 -
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;\\folder\shared$\folder\folder\TODAYS DATA\Matt\12345.csv”, _
Destination:=Range("$A$2:$E$2"))
但我想要做的就是更改它,以便它只查找任何CSV文件。我该怎么做?
我尝试将其更改为只查找*.csv
,但这会因为查找文字"*.csv"
文件而失败。
希望你能帮忙!
答案 0 :(得分:0)
您可以通过多种方法来执行此操作,如下所示应该可以:
Sub OpenLatest()
Dim rs As ADODB.Recordset, fs As FileSystemObject, Folder As Scripting.Folder, File As File
'create a recordset to store file info
Set rs = New ADODB.Recordset
rs.Fields.Append "FileName", adVarChar, 100
rs.Fields.Append "Modified", adDate
rs.Open
'build the list of files and sort
Set fs = New FileSystemObject
Set Folder = fs.GetFolder("\\folder\shared$\folder\folder\TODAYS DATA\Matt")
For Each File In Folder.Files
rs.AddNew
rs("FileName") = File.Path
rs("Modified") = File.DateLastModified
Next
rs.Sort = "Modified DESC"
'process the first newest file
rs.MoveFirst
Do Until Right(rs.Fields("FileName").Value, 3) = "CSV"
rs.MoveNext
Loop
ActiveSheet.QueryTables.Add Connection:="TEXT;" & rs.Fields("FileName").Value, Destination:=Range("$A$2:$E$2")
End Sub
它将获取该文件夹中的所有文件,并使用带有后缀csv的最新文件。