Excel表格中数据的拆分和汇总是我们经常会遇到的问题,之前写过一篇利用VBA代码汇总多个工作簿的数据(文章最后有链接,有需要的朋友可以看一下)。有时并不是所有的数据都能共享,这时就需要把数据按类别拆分到不同的工作表或者工作簿里。
一.实例要求:
下图是某水果超市的进货需求表。我们需要按产品的名称汇总出各个品种水果的需求量,而且要把不同的数据放在不同的工作簿里发给不同的采购人员。

二.操作步骤:
1.Ctrl+A选择数据→切换到插入选项卡→数据透视表→数据透视表的位置勾选现有工作表→选择E1单元格→确定→将需求产品拖动到删选器里,将需求店铺拖动到数据透视表的行里,将需求量拖动到值里(并点开该字段右侧倒三角将值字段设置修改为求和)→切换到分析选项卡→点开选项下倒三角→点击显示报表筛选页。(利用数据透视表的显示报表筛选页功能还可以批量新建工作表)


2.按住Shift键选择所有生成的报表筛选页→复制数据透视表→将数据粘贴成数值→Ctrl+H打开查找替换替换窗口→选项,将查找范围改为工作簿→查找“行标签”替换为“需求店铺”,查找“求和项:”替换为“空白”。

至此,数据按类别拆分到不同的工作表已经完成,接下来讲解的内容为将刚刚得到的数据拆分到不同的工作簿里。
3.使用一段简单的VBA代码将各个工作表另存为单独的工作簿
(1)按下F12将当前工作簿另存为启用宏的工作簿→鼠标右键任意一个工作表→选择查看代码,打开VBA编辑界面→插入一个模块→复制以下代码→保存

Sub 拆分()Dim sh As WorksheetFor Each sh In ThisWorkbook.Worksheetssh.Activatesh.CopyActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & sh.Name & ".xls", FileFormat:=xlOpenXMLWorkbookNextEnd Sub
(2)Alt+F8打开运行宏的界面→选择拆分→点击执行→等待片刻,拆分完成。
总结,本实例中按需求产品的种类进行的数据拆分,读者朋友可以根据实际需求更改要拆分的依据。