用Excel这一个宏,给打印页自动附上序列号,谢谢

用Excel写一个宏,textbox1输入一个起始顺序号,textbox2输入自动生成的序列号个数n个,点击确定以后,给每个打印页的第一个单元格赋值连续的序列号

第1个回答  2018-04-11
这是个比较复杂的过程,思路如下:
1)审批表中,将名册中待打印行的行号放在A1单元格,通过offset函数将各项需打印的数据显示到标准表的格式中。比如C5要填姓名,则=offset(名册!$A$1,A1-1,1), G5要填职务,则=offset(名册!$A$1,A1-1,2)
2)通过代码更改审批表!A1的值,打印名册中的对应单行或连续行的数据。

具体步骤:
1)在审批表中设置打印区域
2)录制一个宏,打印审批表页,保存下来,起个名比如叫PrintForm,以便在以下代码中调用
3)设置审批表中的公式:A1输入个测试值9;按上面提到的方法用offset函数设置每个单元格的公式,“=offset(名册!$A$1,A1-1,”这部分都是一样的,只有第3个参数(偏移列数)不同。在名册中对应第n列,这参数就填n-1的值。比如姓名在第2列,则填1;职务在第3列,则填2。
4)编一个宏,如下:
Sub PrintAll()
Dim rng As Range, R As Integer, I As Integer, C As Integer
Set rng = Selection
R = rng.Row
C = rng.Rows.Count
For I = 1 To C
Sheets("审批表").Range("A1").Value = R + I - 1
Calculate
PrintForm
Next
End Sub
5)新建个按钮,把上面的宏指定给这个按钮。
OK,现在,选上待打印区域(连续选择,不能隔行选择),按按钮就可以打印了
相似回答