我需要一个函数/宏,它允许我从具有特定文件名的文件中导入数据。
更多背景: 我正在从包含不同国家的农业数据的网页下载大量excel文件(所有文件在行和列方面具有相同的结构)。这是通过Python代码完成的,该代码根据以下标准命名文件:Country + Crop + Irrigation level + Management level。例如:GhanaMaizeIrrigationLow。
我创建了一个带有下拉菜单的excel来选择每个参数,并通过TEXTJOIN函数根据文件的命名合并它。我现在需要一些函数/ Macro来导入来自特定单元格的数据。具有相应名称的文件。这样做有不太复杂的方法吗?
提前非常感谢你!
下面是我到目前为止使用的代码,但它导入了文件夹中的所有文件,我只想导入具有特定名称的文件。
Sub ImportCSVsWithReference()
Dim wbCSV As Workbook
Dim wsMstr As Worksheet: Set wsMstr = ThisWorkbook.Sheets("Sheet2")
Dim fPath As String: fPath = "C:\Users\nicol\Desktop\GIS\GAEZ_Downloads\CSV_Files\" 'path to CSV files, include the final \
Dim fCSV As String
If MsgBox("Clear the existing MasterCSV sheet before importing?", vbYesNo, "Clear?") _
= vbYes Then wsMstr.UsedRange.Clear
Application.ScreenUpdating = False 'speed up macro
fCSV = Dir(fPath & "*.csv") 'start the CSV file listing
Do While Len(fCSV) > 0
'open a CSV file
Set wbCSV = Workbooks.Open(fPath & fCSV)
'insert col A and add CSV name
Columns(1).Insert xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'copy date into master sheet and close source file
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Close False
'ready next CSV
fCSV = Dir
Loop
Application.ScreenUpdating = True
End Sub