欢迎来到天天文库
浏览记录
ID:57403297
大小:675.50 KB
页数:8页
时间:2020-08-16
《办公技能使用ExcelVBA代码实现表格拆分功能嘉为科技.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、办公技能-使用ExcelVBA代码实现表格拆分功能--嘉为科技————————————————————————————————作者:————————————————————————————————日期:使用ExcelVBA代码实现表格拆分功能作者:张辛【摘要】因为工作需要,我们经常希望能把一些表格按照某个分类进行拆分,按照正常做法应该是:先按分类项筛选,然后新建工作表,接着将筛选结果复制到新工作表上,随后再修改工作表标签名称,最后依次重复这项工作,直到把分类项中每一个选项都复制一遍,这份工作表才算拆分完毕。这种重复性工作太耗费时间,有没有办法能帮我们快速完成这种体
2、力活呢?【正文】如果使用ExcelVBA宏代码帮我们判断并拆分,则大大减轻工作量。下面就给大家介绍一个案例,希望能带来启发。一、案例描述如下图所示,有一张销售订单表,现在希望按照【产品】进行拆分,将每个城市的数据单独放在一张新工作表上。完成后我们看到的结果是销售订单表【sheet1】被拆分成9张产品表。如下图所示:一、ExcelVBA代码编程说明打开编程环境首先需要调出开发工具选项卡,打开【文件】-【选项】-【自定义功能区】,勾选【开发工具】单击【开发工具】选项卡中的【VisualBasic】右键单击【模块】,选择【插入】-【模块】双击新建的模块,进入代码编辑区。
3、编写代码将拆分工作表的代码贴入编辑区,如下图所示:详细代码信息参考如下:Sub使用高级筛选拆分表格()DimaAsStringDimbAsInteger,cAsIntegerb=WorksheetFunction.CountA(Sheets("sheet1").Range("I2:I100"))Sheets("sheet1").Range("k1")=Sheets("sheet1").Range("i1")Forc=1TobSheets("sheet1").Range("k2")=Sheets("sheet1").Range("I"&c+1).ValueSheet
4、s.AddAfter:=ActiveSheeta=Sheets("sheet1").Range("k2").ValueActiveSheet.Name=aApplication.CutCopyMode=FalseSheets("Sheet1").Range("A1:G231").AdvancedFilterAction:=xlFilterCopy,_CriteriaRange:=Sheets("Sheet1").Range("K1:K2"),CopyToRange:=Sheets(a).Range("A1"),_Unique:=FalseNextcSheets("
5、sheet1").Range("k1:k2").ClearSheets("sheet1").SelectEndSub一、应用宏代码完成工作设置拆分依据代码中定义工作表【sheet1】中的I列为拆分依据,所以要将分类项复制粘贴到I列。然后使用【数据】-【删除重复项】命令,将重复数据删除。运行宏代码单击【开发工具】-【宏】,打开宏编辑对话框,选中“使用高级筛选拆分表格”,单击【执行】即可。【小提示】:包含宏代码的Excel2007文件,要保存成.xlsm的格式,才能将代码保留下来。如果保存成.xlsx格式,代码将被自动删除。
此文档下载收益归作者所有