扫描多个文件并格式化并复制到VBA或Powerquery中的主文件

我有几百个报告的文件夹 – 所有的报告都是一样的,没有其他的文件夹。 我应该像图像中的第一个工作簿一样,并在一个主文件(第二个图像)recopilate他们。

在这里输入图像说明

我有一些代码 – 但我不知道如何完成它。 该工作簿是一个模板,所以它总是有15行(可以完成或不),我需要把所有的那里加上date和组控制,这是文件内的每个文件共享。

我很感激你能帮我完成代码。 有人告诉我这可以使用powerquery完成,但我从来没有使用过。 如果你认为这会更容易,请让我知道你的想法。

谢谢!!

我拥有的:

Public Sub test() 'DECLARE AND SET VARIABLES Dim wbk As Workbook Dim Filename As String Dim Path As String Path = "C:\Users\Maudibe\Desktop\ExcelFiles\" Filename = Dir(Path & "*.xlsm") '-------------------------------------------- 'OPEN EXCEL FILES Do While Len(Filename) > 0 'IF NEXT FILE EXISTS THEN Set wbk = Workbooks.Open(Path & Filename) ' ' **WHAT TO DO HERE?** ' MsgBox Filename & " has opened" wbk.Close True Filename = Dir Loop End Sub 

所以我修改你的代码:(必须在ThisWorkbook)

 Public Sub test() 'DECLARE AND SET VARIABLES Dim wbk As Workbook Dim Filename As String Dim Path As String Dim sht, msht As Worksheet Dim lRowFile, lRowMaster As Long Dim FirstDataSet As Integer Path = "C:\Users\User\Desktop\Files\" Filename = Dir(Path & "*.xlsm") '-------------------------------------------- 'OPEN EXCEL FILES Do While Filename <> "" And Filename <> "Master.xlsm" 'Dont Open MasterFile 'IF NEXT FILE EXISTS THEN Set wbk = Workbooks.Open(Path & Filename) Set sht = Workbooks(Filename).Worksheets(1) 'First Sheet in File Set msht = ThisWorkbook.Worksheets(1) 'First Sheet in Master lRF = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row 'Last Row in File lRM = msht.Cells(Rows.Count, 1).End(xlUp).Row 'Last Row in Master FirstDataSet = 5 'First Data Set in File For i = FirstDataSet To lRF lRM = msht.Cells(Rows.Count, 1).End(xlUp).Row 'Last Row in Master msht.Range("A" & lRM + 1).Value = sht.Range("A" & i).Value 'DocumentName msht.Range("B" & lRM + 1).Value = sht.Range("B" & i).Value 'Amount msht.Range("C" & lRM + 1).Value = sht.Range("D2").Value 'Date msht.Range("D" & lRM + 1).Value = sht.Range("D3").Value 'Group # Next i wbk.Close True Filename = Dir Loop End Sub 

它将打开工作簿并检查列A中填充了哪些行(不用必须是空白的)。 然后它将数据复制到主文件。 我已经打开的工作簿看起来像这样,结果:

在这里输入图像说明