基于EXCEL的信封打印系统

时间:2022-08-10 09:35:32

基于EXCEL的信封打印系统

年终将近,信封评议又要开始了,单位领导交给监察室小周一千多个信封和一千多份全市各地人员的名单和通讯地址,叫她寄发给他们进行信封评议,这下小周可犯愁了,如此多单位用手工书写的话,不知道要花多少时间,于是打电话向我求救,叫我帮忙,了解大致情况后,我叫她把人员名单和通讯地址的电子文档发过来,通过在工作簿中插入VBA代码,很快就实现信封的批量打印工作,以下简要说明具体的操作的过程。

一、设置信封打印模板

把发过来手EXCEL电子文档重命名为“信封打印系统”,把“名单和地址”工作表重命名为“通讯录”,完成后的内容如图1,在此工作簿中新建一张工作表,并命名为“信封打印”,输入相应的内容,完成后的内容如图2,图中的信封样式是通过扫描仪扫描信封取得的,然后把信封图片插入到“信封打印”工作表中作为背景。

二、插入VBA代码

1、要能够使“通讯录” 工作表中对应信息自动取到“信封打印”工作表中,需要利用“控件工具箱”在“信封打印” 工作表的相应地方添加两个命令按钮,将其Caption属性修改为“全部打印”和“查询打印”,双击“全部打印”按钮,在其Click事件中插入如下代码:

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Worksheets("信封打印").Select

Count = Worksheets("通讯录").[a65536].End(xlUp).Row

With Worksheets("通讯录")

For j = 7 To Count

Range("j1") = .Cells(j, 2): Range("f5") = .Cells(j, 3)

Range("e8") = .Cells(j, 4): Range("a13") = .Cells(j, 5)

Worksheets("信封打印").PrintOut copies:=1, collate:=True

a = j - 1

b = a Mod 50 = 0

If b = True Then

MsgBox "已打印了 " & j - 1 & "个人员的信封,为防止打印机过热,现暂停,如要继续,请按确定。"

End If:Next j: End With

Application.ScreenUpdating = True

MsgBox "一共成功打印了" + Str(Count - 1) + "个人员的信封!正在打印中,请稍候……"

End Sub

代码说明:以上代码是把“通讯录”工作表中的数据对应取到“信封打印”工作表中,用循环语句打印出全部人员的信封,为防止打印机过热,每打印50个信封就暂停一下,如继续按确定即可。

2、上述代码实现了全部人员打印的功能,但在实际操作中,由于计算机、打印机等原因,其中一个或几个人员没能打印出来,需要单独打印,上述方法显然不妥,为了能够实现单独打印,我们需要设置“查询打印”命令按钮,双击“查询打印”按钮,在其Click事件中编写如下代码:

Private Sub CommandButton2_Click()

rel = InputBox("请输入要打印人员的序号:", "提示")

Application.ScreenUpdating = False

Worksheets("信封打印").Select

Count = Worksheets("通讯录").[a65536].End(xlUp).Row

If rel "" Then

With Worksheets("通讯录")

For j = 2 To Count

Lookup = Worksheets("通讯录").Cells(j, 1)

If Val(Lookup) = rel Then

Range("j1") = .Cells(j, 2): Range("f5") = .Cells(j, 3)

Range("e8") = .Cells(j, 4): Range("a13") = .Cells(j, 5)

Worksheets("信封打印").PrintPreview

Exit Sub: End If: Next j: End With

MsgBox "没有找到序号为" + rel + "的人员,请确认后重新输入!"

Else: MsgBox "你输入的序号为空,请确认后重新输入!"

End If

Application.ScreenUpdating = True

End Sub

代码说明:以上代码中先出现一个序号输入框,输入需要单独打印人员的序号,然后把“通讯录”中此序号人员的信息对应取到“信封打印”工作表中,并打印出此序号人员的信封,如果输入框中未输入序号,或者输入的序号与“通讯录”中的不相符,就不打印。

3、“全部打印”和“查询打印”两个命令按钮创建完成后的效果如图3所示,另外,为使打印的信封上不出现添加的命令按钮,应分别右击两按钮,选择“设置控件格式”命令,切换到“属性”选项卡,去掉“打印对象”复选框的选中状态(如图4)。

至此,“信封打印”工作表设计完成,如要打印某个人的信封,只要按“查询打印”命令按钮,如要打印全部人员的信封,只要按“全部打印”命令按钮,领导交办的任务是不是很快就完成了,打印信封的事就交给打印机了。

上一篇:效率猛增 巧设置让QQ更加安全\高效 下一篇:巧除Word表格后空白页两小招