文本拆分合并,如何把多个excel合并为一个excel里的多个sheet

问题:excel中什么巧用&来归并文本?

图片 1
若果像上海体育场地那样将1单元格内拆分成同等大小的字词,可用如下步骤:

集合sheet页, 合并excel文书档案, 合并工作表, 合并职业簿

难点情景

文本拆分合并,如何把多个excel合并为一个excel里的多个sheet。有多张数据库表,不过每张表存在一个excel里,导致文件量相当大。为方便使用,须要把三个excel合并为贰个,且每张表为一个sheet,sheet名字以本来的公文名命名。

回答:

1、将该单元格的幅度缩至拆分词的轻重;

合并工作表(sheet)

集合四个工作表
仅适用于每一种sheet的率先行是数据头,数据从第三行发轫。

Sub 合并工作表()
    Dim J As Integer
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    For J = 2 To Sheets.Count
        Sheets(J).Activate
        c = Sheets(J).Range("IV1").End(xlToLeft).Column
        r = Sheets(J).Range("A65536").End(xlUp).Row
        Range("A2").Resize(r - 1, c).Select
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
End Sub

化解办法

一.Java有Apache POI包能够对excel操作,还没搞理解,以往贴代码。
二.使用excel自带的VB编程。在excel里右键点sheet能够望见“查看代码”的选料就可以张开编制程序界面,复制如下代码进去点运营就可以。

&是二个边接符。

图片 2

联合职业簿

Sub 合并工作簿()

    Dim FileOpen
    Dim X As Integer
    Application.ScreenUpdating = False
    FileOpen = Application.GetOpenFilename(FileFilter:="Excel 97-2003 工作簿(*.xls),*xls,Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="请选择需要合并的工作簿")
    X = 1
    If TypeName(FileOpen) = "Boolean" Then
        MsgBox "未选择任何文件, 退出."
        Exit Sub
    End If

    While X <= UBound(FileOpen)
        Workbooks.Open Filename:=FileOpen(X)
        Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        X = X + 1
    Wend
ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub

errhadler:
    MsgBox Err.Description
End Sub

注意事项

1.sheet渴求至多三十一个字符,所以要小心表名长度,长度超出会报错。
二.注意excel版本,有xls和xlsx俩种格式的文本。

Sub Books2Sheets()
    '定义对话框变量
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    '新建一个工作簿
    Dim newwb As Workbook
    Set newwb = Workbooks.Add

    With fd
        If .Show = -1 Then
            '定义单个文件变量
            Dim vrtSelectedItem As Variant

            '定义循环变量
            Dim i As Integer
            i = 1

            '开始文件检索
            For Each vrtSelectedItem In .SelectedItems
                '打开被合并工作簿
                Dim tempwb As Workbook
                Set tempwb = Workbooks.Open(vrtSelectedItem)

                '复制工作表
                tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)

                '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
                newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")

                '关闭被合并工作簿
                tempwb.Close SaveChanges:=False

                i = i + 1
            Next vrtSelectedItem
        End If
    End With

    Set fd = Nothing
End Sub