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