美文网首页WEB前端开发技术杂谈
把一张Excel表按照固定列分成不同工作薄的小白方法

把一张Excel表按照固定列分成不同工作薄的小白方法

作者: 春燕儿 | 来源:发表于2020-02-16 17:42 被阅读0次

    这是结合百度经验和论坛上的资料整理的方法,分两步,第一步是把一个完整的工作表按照某一列分解为不同的工作表。第二步是把这些工作表在分别拆为工作薄。

    个人觉得这是一个相对比较简单的方法,也尝试用Python一步到位,但是比较复杂,搞不定。

    第一步 将一个工作表按照某一列内容拆分为不同的工作表。

    用数据透视表的方法要数据比较少,上千条的数据基本上就运转不了。用Python的对知识要求有点高,舍弃;

    我用VBA的方式在做的。

    1, 打开待拆分的工作表

    2, alt+F11,插入“模块”

    3, 在模块的窗口,复制下面的代码:

    Sub 拆分工作簿为多个sheet()

    Set d = CreateObject("scripting.dictionary")

    With Worksheets(1)

    rrow = .Cells(Rows.Count, "a").End(3).Row

    For i = 2 To rrow '从第2行开始拆分

    strr = .Range("B" & i).Value '拆分B列内容

    If Not d.exists(strr) Then

    d.Add strr, .Range("a" & i).Resize(1, 6)

    Else

    Set d.Item(strr) = Union(d.Item(strr), .Range("a"& i).Resize(1, 6))

    End If

    Next

    k = d.keys

    i = d.items

    For a = 0 To d.Count - 1

    Worksheets.Add.Name = k(a)

    i(a).Copy Worksheets(k(a)).Range("a2")

    Next

    End With

    End Sub

     4, 这个代表复制黏贴后格式会存在错误,按照下面的图片来调整格式。主要对齐方式

    5.按工具栏上面的绿色小三角。如下图所示:

    6,    运行完成后,因为上面分拆后的表格都没有表头,可以把原来的表头复制黏贴过去,由于数据比较少,这个步骤就很简单。

    第二步,怎么将Excel多个工作表拆分成多个单独的Excel

    方法/步骤

    1.    打开需要拆分的excel,在任意工作表右击,点击“查看代码”

    2.   在打开的窗口中输入如下代码:

    Private Sub 分拆工作表()

            Dim sht As Worksheet

            Dim MyBook As Workbook

            SetMyBook = ActiveWorkbook

            ForEach sht In MyBook.Sheets

               sht.Copy

               ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name,

    FileFormat:=xlOpenXMLWorkbook     '将工作簿另存为xlsx格式

              ActiveWorkbook.Close

    Next

    MsgBox "文件已经被分拆完毕!"

    End Sub

    5.    点击绿色三角,运行程序,等待拆分。

    6.    拆分成功后,会弹出窗口提示。

    7.   返回Excel工作簿文件所在路径即可查看已经拆分的工作薄。

    相关文章

      网友评论

        本文标题:把一张Excel表按照固定列分成不同工作薄的小白方法

        本文链接:https://www.haomeiwen.com/subject/zwcmfhtx.html