WEB前端开发技术杂谈

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

2020-02-16  本文已影响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工作簿文件所在路径即可查看已经拆分的工作薄。

上一篇下一篇

猜你喜欢

热点阅读