当我们利用offset函数制作一户一表后水貔藻疽,有时需要按户打印出来进行公示等,而利用软件自带的打印功能,可进行当前页打印,但无刮茕栓双法批量按一户一表进行打印,这时我们就需要利用到VBA宏打印。本文使用的是微软2007版Excle。
工具/原料
微软2007版Excle
一户一表的数据表
方法/步骤
1、在一户一表的数据表空白区域任意选取两个单元格,输入批量打印需要的【打印页码起】(起始页码)、【打印页码止】(结束页码)
2、*-*插入按钮*-*【开发工具】--【插入】--【表单控件】--【按钮(窗体控件)】,弹窗【指定宏】,直接点【确定】(因为还没添加宏,先不管)
3、*-*按钮命名*-*左键单击按钮或右键单击按钮选择【编辑文字】,编辑按钮名称,更改为【批量打印】;重复步骤二,添加按钮,并更改按钮名称为【单页打印】
4、*-*输入代码*-*点击【开发工具】--【查看代码】,输入如下代码:Sub单页打印(拘七呷憎)E8_Msg"确定打印当前页?"ActiveSheet.PrintOu墉掠载牿tEndSubSub多页打印()E8_Msg"确定要批量打印数据?"ForI=[X28]To[X29][L11]=IApplication.CalculateActiveSheet.PrintOutNextEndSubFunctionE8_Msg(infoAsString)IfMsgBox(info,vbYesNo)=vbNoThenEndEndIfEndFunctionPrivateSubCommandButton1_Click()EndSub
5、*-*代码简析*-*(1)Sub后面的单页打印、多页打印为宏名称
6、(2)ForI=[X28]To[X29],表示单元格X28至X29,即【打印页码起】【打印页码止】的内容
7、(3)[L11]=I,表示单元格L11,即【户编号】的内容
8、(4)E8_Msg"确定打印当前页?",即打印时的提示语
9、*-*指定宏*-*关闭代码窗口,给【批量打印】【单页打印】按钮【指定宏】右键单击按鸵晚簧柢钮【批量打印】--【指定宏】--【Sheet1.多页打印】--【确定】;右键单击按钮【单页打印】--田肖倦娄【指定宏】--【Sheet1.单页打印】--【确定】;
10、*-*设置打印区域*-*下拉拓选需要打印的内容区域,点击【页面布局】--【打印区域】--【设置打印区域】
11、*-*测试*-*左键单击打印按钮,测试看看效果
12、*-*优化*-*打印相关区域格式、名称自定义设置当打印起、止页码未输入或者起的殳陌抻泥页码小于止的页码,可弹轻拔吴悃窗提示。如:输入函数=IF(X28="","请输入起始页码",IF(X29="","请输入结束页码",IF(OR(X28>X29,X28=X29),"输入有误,起始页码需小于结束页码","")))简析:当起或止的页码为空时,提示"请输入起始页码",若起的页码小于或等于止的页码,则提示"输入有误,起始页码需小于结束页码"
13、*-*启用宏*-*初次打开有些会被禁用宏,这时需点击【选项】,弹出安全警告,再点击【启用此内容】--【确定】即可