使用奇怪的格式将多个不同的工作表合并到主模板中

时间:2018-04-07 00:33:54

标签: vba excel-vba excel

这看起来有点复杂,所以如果我需要更清楚,请告诉我。

我从一个部门收到约20份报告,我负责将每份报告中特定工作表的数据合并到一个主文件中。所有报告都完全相同,数据范围设置得非常多。我对VBA比较陌生,但我能够通过研究将代码拼凑起来,使用循环将所有数据复制并粘贴到新工作簿中。但是,如果我可以将这些数据直接放入报告模板中,那将是理想的。这是我需要帮助的地方。模板的格式不理想 - 我的标题不会在A25开始,并且底部有总计标签和说明,所以我不能将值放在最后一个空行中。< / p>

我想弄清楚如何确保我从第一张工作表中获取的数据放入A26中,并将以下工作表中的数据放入下一个可用单元格中。

以下是我目前的代码。我一般都明白什么意思,但请记住我是一个VBA菜鸟......所以要好好:)

Sub MergeData()

Dim FileName As String, FilePath As String, FolderPath As String
Dim LastCell As Range

With ThisWorkbook.Worksheets("Sheet1")
    Set LastCell = .Cells(.Rows.Count, 1)
End With

FolderPath = "C:\Desktop" 'changed for privacy
FilePath = FolderPath & "*.xls*"
FileName = Dir(FilePath)

Do While FileName <> ""
    With Workbooks.Open(FolderPath & FileName)

        Worksheets("SBP WIP").Range("A26:AK336").Copy
        LastCell.End(xlUp).Offset(1).PasteSpecial xlPasteValues
        ActiveCell.Copy

        .Close False

    End With
    FileName = Dir
Loop
End Sub

谢谢!

1 个答案:

答案 0 :(得分:0)

在您的第一个With-End With块中,只需添加一行

With ThisWorkbook.Worksheets("Sheet1")
    .Range("A25").Value = "X" ‘ make sure to hit row 25 in subsequent “xlUps”
    Set LastCell = .Cells(.Rows.Count, 1)
End With

在宏观结束之前添加:

ThisWorkbook.Worksheets("Sheet1").Range("A25").ClearContents