资源描述:
《批量打印的VBA程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、批量打印的VBA程序一项任务的要求是把表1按照表2填写完整后,打印输出。如果人多的话,这项工作很是繁琐,所以我写了一个VBA程序,让工作自动进行。后来,这个程序的思路还发表的论文。OptionExplicitDimArr() '定义要打印的记录的行号为可变数组,用来保存要打印的记录的行号DimLastRow%,PrePage%,FindNameRow% '定义数据表中的最后一行行号、向导在第二步时的页面、找到的姓名所在的行DimOutToPrintAsBoolean '定义是否输出到打印机PrivateSubC
2、Bcancel_Click() UnloadMeEndSubPrivateSubCBfinish_Click() Dimi%,j% Dimmyadd() UFPrint.Hide myadd=Array("C2","E2","G2","C3","E3","G3","C4","C5","F5","C6","C7","E7","C8","E8","C9","E9","G9","C10","E10","G10","B11") ' 定义需输入内容的单元格地址为数组 Fori=LBound(A
3、rr)ToUBound(Arr) '循环提取数据表中需要处理的记录 Forj=LBound(myadd)ToUBound(myadd) '循环提取各字段数据 Sheets("print").Range(myadd(j)).Value=Sheets("data").Cells(Arr(i),j+1).Value ' 将数据填入到表格中 Nextj IfOutToPrintThenSheets("print").Prin
4、tOut '打印 IfNotOutToPrintThenSheets("print").PrintPreview '打印预览 DoEvents Next UFPrint.MultiPage1.Value=0 '到第一个页面 UFPrint.ShowEndSubPrivateSubCBnext_Click() Dimi%,SelCount%,MyCount%,ChangePage% SelectCaseMultiPage1.Value '判断按下
5、“下一步”按钮时的页面 Case0 '第一个页面 IfOptionButton1.Value=TrueThenChangePage=1 IfOptionButton2.Value=TrueThenChangePage=2 IfOptionButton3.Value=TrueThenChangePage=3 '根据所做的选择,分别设置将要跳到哪一个页面 Case1 '第二个页面 IfVal(TextBox1)<2OrVal(TextBox
6、1)>LastRowOrVal(TextBox2)<2OrVal(TextBox2)>LastRowThen MsgBox"数值应大于等于2,小于等于"&LastRow,vbOKOnly+vbExclamation,"提示" TextBox1=2 TextBox2=2 ExitSub EndIf '如果数据不符合要求,退出过程 ReDimArr(CInt(TextBox1)ToCInt(TextBox
7、2)) '重新定义数组 Fori=LBound(Arr)ToUBound(Arr) Arr(i)=i Nexti '将数据写入数组 ChangePage=4 '设置要转到的下一个页面 Case2 '第三个页面 SelCount=0 Fori=0ToListBox1.ListCount-1 IfListBox1.Selected(i)ThenSelCount=SelCount+1
8、 Nexti '得到共有多少条记录被选择 ReDimArr(1ToSelCount) '重新定义数组 MyCount=1 Fori=0ToListBox1.ListCount-1