作者:乔山办公网日期:
返回目录:excel表格制作
楼主,其实批量打印office文档的软件早就有了哦,楼主到嘻皮客娱乐学习网的实用工具版块去看看吧。就有这个软件,可以混合批量打印,不用那么麻烦写个宏啊
你是要 (1)将Sheet1的各行内容全部逐一引入“打印”表中,打印。
还是(2)根据P2的内容,到Sheet1中打出 对应在行的内容,引入“打印”表中,打印。
我大概以(1)的要求写个粗略的程序,你修改后调试执行吧:
1、先选择“打印”表,设定打印区域636f70797a686964616f332,请选择你要打印的区域,在页面布局-打印区域-设置打印区域,这样区域外的内容不会被打印。
2、在打印区域外,用菜单-开发工具-插入-按钮,按内容为“打印全部表格”,
3、在宏-编辑中,选择“按钮1_Click”,输入下面的宏指令,我只是写上一些关键的语句,你可按具体要求补充完整。原答案被判违规现修改,感谢审核的放行。谢谢!
4、VBA程序基本内容:
Public a As String, b As String, c As String, d As String, e As String, f As String, g As String '定义公共变量
Public h As String, i As String, j As String, k As String, l As String, m As String, LastRow As Integer
Sub 按钮1_Click()
Sheets("sheet1").Select '选择Sheet1工作表
LastRow = Cells(Rows.Count, 1).End(xlUp).Row '求出表格内容的最后一行行号
For x = 2 To LastRow '从第二行的内容开始 到最后一行
a = Cells(x, 1) '合同编号客户名称 将对应行的内容读入变量中
b = Cells(x, 2) '合同编号 Cells(x,2)的意思是第x行第2列的单元格内容
c = Cells(x, 3) '客户名称 a~m是变量,存放x行中各单元格的资料
d = Cells(x, 4) '区域经理
e = Cells(x, 5) '代理商
f = Cells(x, 6) '函件单号
g = Cells(x, 7) '是否回函
h = Cells(x, 8) '合同总价
i = Cells(x, 9) '到款金额
j = Cells(x, 10) '合同余款
k = Cells(x, 11) '截止开票金额
l = Cells(x, 12) '开票金额
m = Cells(x, 13) '求和项
Sheets("打印").Select '
Cells(1, 1).Select '
[J6] = a '合同编号客户名称 将变量内容填入对应单元格的中
[J2] = b '方括号中内容就是单元格名称,如[J2]就是J2单元格
[K2] = c ’这里仅作示范,请你根据变量的内容要填入打印表格中的什么地方你自行修改
[E3] = d
[C5] = e
[E5] = f
[F5] = g
[H5] = h
[J5] = i
[D7] = j
[E7] = k
[F7] = l
[G7] = m
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印指定范围内容,打印一份
Next '处理下一行
End Sub
在sheet1中来 E1输入源zhidao1,E2输入5
Sub s()
Sheet1.Select
For i = [e1] To [e2]
[d2] = Sheet3.Cells(i, 1)
ActiveSheet.PrintOut Copies:=1
Next
End Sub
你用可以用下面方法处理
处理方法制表(两个表,数据表和输出表)
用Excel开发建筑工程资料的系统
一行一表法和多行一表法通用各种表格