-1

我正在寻找一些从文件夹中提取文件并将其中的数据粘贴到目标电子表格中的代码。

我有一个文件夹,其中包含所有格式相同的报告,报告每周生成并每周保存到一个新文件夹中,因此我并不总是从同一个文件夹中挑选文件。我想要一个提供“浏览文件夹”对话框的宏,然后当我选择文件夹时,它会依次打开该文件夹中的每个 Excel 文件,复制数据(范围 A:W),将其粘贴回目标电子表格,关闭电子表格,然后移至文件夹中的下一个文件。

在报告中,标题下的行数并不总是相同,可能只有 1 行或 2 行以上,所以我还需要使用代码检查每行中是否存在数据,如果只有 1 行将复制该行,如果超过 1 它将全部复制。

4

1 回答 1

1

您可以使用类似这样的方法来循环浏览所选文件夹中的文件夹:

Dim sPath As String
Dim sFil As String
Dim FolderPath As String
   Dim diaFolder As FileDialog

   ' Open the file dialog
   Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
    diaFolder.AllowMultiSelect = False
    diaFolder.Show
    FolderPath = diaFolder.SelectedItems(1)

     ' Cycle through spreadsheets in selected folder

sPath = FolderPath & "\" 'location of files

sFil = Dir(sPath & "*.csv") 'change or add formats
Do While sFil <> "" 'will start LOOP until all files in folder sPath have been looped       through


Set oWbk = Workbooks.Open(sPath & "\" & sFil) 'opens the file
' do something

oWbk.Close True
sFil = Dir

Loop

然后你可以把你的代码复制到它说的地方'do something

于 2013-02-19T16:56:25.807 回答