将许多excel文件合并到一个具有不同工作表的新文件中

时间:2016-08-04 12:23:13

标签: vba merge excel-2010

我正在尝试从文件夹合并许多excel文件(工作簿)。 我的问题是我想将不同的工作表移动到新的excel文件。 目前我的代码只能从这些不同的文件中移动一张表。

实施例: 我有3个名为

的excel文件
  • 1.xlsx
  • 2.xlsx
  • 3.xlsx

所有3个文件都有3张,我想从1.xlsx获取sheet1,从2.xlsx获取sheet1和sheet2,最后从3.xlsx获取sheet3并放入一个新的excel文件。

我的代码目前只能从每个文件中获取一张(和相同的工作表编号)并放入新文件中。

我的代码如此票价:

Sub MergeMultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim Path As String
Dim Filename As String

Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
path = "C:\Users\*ChangeThis*\Desktop\merge" 
Set wbDst = Workbooks.Add(xlWBATWorksheet)
Filename = Dir(path & "\*.xlsx", vbNormal)

If Len(Filename) = 0 Then Exit Sub

Do Until Filename = ""
    Set wbSrc = Workbooks.Open(Filename:=path & "\" & Filename)

    sheet = 1
    Set wsSrc = wbSrc.Worksheets(sheet)
    wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)

    wbSrc.Close False
    Filename = Dir()
Loop
wbDst.Worksheets(1).Delete

Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

非常感谢

1 个答案:

答案 0 :(得分:2)

您需要遍历文件夹中当前工作簿中的所有表格。

尝试以下代码:

Fragment fragment = CustomFragment.newInstance();

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

transaction.replace(R.id.container_layout, fragment).commit();