将具有特定文件名的excel文件中的数据导入另一个Excel工作表

时间:2017-09-05 15:02:23

标签: excel

我需要一个函数/宏,它允许我从具有特定文件名的文件中导入数据。

更多背景: 我正在从包含不同国家的农业数据的网页下载大量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

0 个答案:

没有答案