您的AI财务准则专家
VBA教程:一键合并Excel文件夹中所有工作表
如果用VBA代码应该怎么写?

在Excel中使用VBA合并多个工作簿中的工作表,你可以使用以下基本代码框架。请根据实际文件路径和工作表名称进行适当修改:

Sub 合并工作表()
    Dim wbMaster As Workbook, wbSource As Workbook
    Dim wsSource As Worksheet, wsMaster As Worksheet
    Dim strFolderPath As String, strFileName As String
    Dim strSheetName As String

    ' 设置主工作簿和工作表
    Set wbMaster = ThisWorkbook
    Set wsMaster = wbMaster.Sheets.Add(After:=wbMaster.Sheets(wbMaster.Sheets.Count))
    wsMaster.Name = "合并后的数据"

    ' 设置源文件夹路径
    strFolderPath = "C:\Your\Path\To\Folder\" ' 替换为实际文件夹路径

    ' 遍历文件夹中的每个Excel文件
    strFileName = Dir(strFolderPath & "*.xlsx", vbNormal)
    While strFileName <> ""
        ' 打开源文件
        Set wbSource = Workbooks.Open(Filename:=strFolderPath & strFileName)

        ' 遍历源文件中的每个工作表
        For Each wsSource In wbSource.Worksheets
            ' 检查工作表是否需要合并(例如,可以检查工作表名称)
            If wsSource.Name = "Sheet1" Then ' 替换为要合并的工作表名称
                ' 复制数据到主工作簿
                wsSource.Cells.Copy wsMaster.Cells(wsMaster.Cells.Rows.Count, "A").End(xlUp).Offset(1, 0)
            End If
        Next wsSource

        ' 关闭源文件
        wbSource.Close SaveChanges:=False
        strFileName = Dir
    Wend

    MsgBox "合并完成!"
End Sub

这段代码会将指定文件夹中所有Excel文件的指定工作表(在这个例子中是名为"Sheet1"的工作表)的数据合并到一个新的工作表中。请确保替换strFolderPath为你的实际文件夹路径,以及Sheet1为你要合并的工作表名称。运行这个宏之前,确保所有需要合并的工作表结构相同,以便数据能够正确对齐。