Excel通过VBA打印信封
Excel通过VBA打印信封:
Sub printSheet()
Dim no1 As Integer
Sheets("信封模板").Select '进入打印页面
no1 = 2
'no2 = InputBox("请输入打印内容行数:", "对话框", 1)
'If no2 = "" Then '如果在对话框中选择了取消按钮,则终止宏!
'Exit Sub
' End If
Do While no1 <= 65535
Dim isPrint As String
isPrint = Sheets("源数据").Range("m" + Trim(Str(no1 + 1))).Value
If isPrint <> "已打印" Then '判断此行是否已打印过打印过则跳过
Sheets("信封模板").Range("a1:f1").Value = Sheets("源数据").Range("a" + Trim(Str(no1 + 1)) + ":" + "f" + Trim(Str(no1 + 1))).Value '更新邮政编码
Sheets("信封模板").Range("f3").Value = Sheets("源数据").Range("g" + Trim(Str(no1 + 1))).Value '更新收件人地址
Sheets("信封模板").Range("g4").Value = Sheets("源数据").Range("h" + Trim(Str(no1 + 1))).Value '更新收件人名称
Sheets("信封模板").Range("g5").Value = Sheets("源数据").Range("i" + Trim(Str(no1 + 1))).Value '更新收件人车牌号
Sheets("信封模板").Range("h6").Value = Sheets("源数据").Range("j" + Trim(Str(no1 + 1))).Value '更新寄件人名称
Sheets("信封模板").Range("h7").Value = Sheets("源数据").Range("k" + Trim(Str(no1 + 1))).Value '更新寄件人地址
Sheets("信封模板").Range("h8").Value = Sheets("源数据").Range("l" + Trim(Str(no1 + 1))).Value '更新寄件人邮编
Sheets("源数据").Select '进入源数据页面
Sheets("源数据").Range("m" + Trim(Str(no1 + 1))).Value = "已打印" '标记源数据是否已打印
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True '打印输出
MsgBox "当前行已打印完成,请核对是否正确!下面将跳转到源数据页面", 48, "暂停提示"
Exit Sub
Else '如果所有行都已标记为打印则不打印任何数据
If Trim(Sheets("源数据").Range("h" + Trim(Str(no1 + 1))).Value) = "" Then '根据收件人名称判断
MsgBox "未打印任何行,因为所有数据都已标记为已打印!"
Exit Sub '这里必须退出否则将一直循环66535次
End If
End If
no1 = no1 + 1
Loop
End Sub
'批量打印
Sub batchPrintSheet()
Dim no1 As Integer
Sheets("信封模板").Select '进入打印页面
no1 = 1
no2 = InputBox("请输入打印内容行数:", "对话框", 1)
If no2 = "" Then '如果在对话框中选择了取消按钮,则终止宏!
Exit Sub
End If
Do While no1 <= no2
Sheets("信封模板").Range("a1:f1").Value = Sheets("批量打印源数据").Range("a" + Trim(Str(no1 + 1)) + ":" + "f" + Trim(Str(no1 + 1))).Value '更新邮政编码
Sheets("信封模板").Range("f3").Value = Sheets("批量打印源数据").Range("g" + Trim(Str(no1 + 1))).Value '更新收件人地址
Sheets("信封模板").Range("g4").Value = Sheets("批量打印源数据").Range("h" + Trim(Str(no1 + 1))).Value '更新收件人名称
Sheets("信封模板").Range("g5").Value = Sheets("批量打印源数据").Range("i" + Trim(Str(no1 + 1))).Value '更新收件人车牌号
Sheets("信封模板").Range("h6").Value = Sheets("批量打印源数据").Range("j" + Trim(Str(no1 + 1))).Value '更新寄件人名称
Sheets("信封模板").Range("h7").Value = Sheets("批量打印源数据").Range("k" + Trim(Str(no1 + 1))).Value '更新寄件人地址
Sheets("信封模板").Range("h8").Value = Sheets("批量打印源数据").Range("l" + Trim(Str(no1 + 1))).Value '更新寄件人邮编
'ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True '打印输出
Sheets("批量打印源数据").Range("m" + Trim(Str(no1 + 1))).Value = "已打印" '标记源数据是否已打印
MsgBox "第" & no1 & "行已经打印", 48, "暂停提示"
no1 = no1 + 1
Loop
End Sub
Private Sub CommandButton1_Click()
Call batchPrintSheet
Sheets("源数据").Select '进入源数据页面
End Sub
Private Sub 开始打印_Click()
Call printSheet
End Sub
信封的样式:
如下样式的excel文件,我在最上现放置了两个按钮。通过vba脚本打印出信封的样式。
Excel通过VBA打印信封相关推荐
- Word、Excel组合 批量打印信封
很多学校期末都都要给学生寄成绩通知单,教务处需要打印大量的信封.利用Word XP与Excel XP可以协作来批量打印信封,一起来看看吧. 1.准备阶段 (1)新建一Excel文件"新生名单 ...
- Word与Excel组合工作 批量打印信封
很多学校期末都都要给学生寄成绩通知单,教务处需要打印大量的信封.利用Word XP与Excel XP可以协作来批量打印信封,一起来看看吧. 1.准备阶段 (1)新建一Excel文件"新生名单 ...
- 【Monkey Run】Excel编程 VBA
Excel编程 VBA 天气如此舒适,装B逐渐减少,所以最近的blog输出一直停滞不前.然而最近一直忙于Excel编程,觉得也有点从0到1的学习创造过程,有必要总结记录下.具体的VBA编程知识可以借鉴 ...
- excel怎么设置打印区域_Excel如何设置打印区域及打印区域如何调整
方法/步骤 1.打开编辑好的Excel文档,选中想要打印的区域,如图所示(阴影图层部分为所要打印的区域) 2.点击页面布局选项卡,选择打印区域选项, 点击设置打印区域子选项,这时候我们就成功设置了打印 ...
- Excel与VBA编程中的常用代码
Excel与VBA编程中的常用代码 用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的! 使用Dim语句 Dim a as integer '声明A为整形变量 Dim a '声 ...
- 打印信封格式怎么调计算机,打印信封,就是这么简单
原标题:打印信封,就是这么简单 信件,是20世纪人们之间通讯的重要工具之一.现在虽然大家都很少写信了,但是在一些商务场合,信件仍然有其不可替代的作用.在职场中,制作和批量打印信封仍然是一项非常重要的办 ...
- 关于 Excel 2003 vba usedrange属性
关于 Excel 2003 vba usedrange属性 vba usedrange属性 如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想 ...
- 《Excel与VBA开发》一书上市时间
如果没有意外的话,<Excel与VBA开发>一书在9月初应该就可以上市.
- 【Excel】VBA批量修改文件名
Excel:VBA批量修改文件名 Dim filePath As Variant '定义filepath为变量 Dim obj As Object '定义obj为变量对象 Dim fld, ff, g ...
最新文章
- Linux下安装搜狗拼音
- 《用Python进行自然语言处理》第 9 章 建立基于特征的文法
- vue 中eslint 格式报错
- GDCM:创建DICOMDIR的测试程序
- Struts2 第9part 通过实现ModelDriven来接收参数
- jQuery 项目 兼容IE ,缓存问题,等总结
- android游戏开发框架libgdx的使用(十五)—TWL布局
- 一步一步写算法(之爬楼梯)
- 电工产品的电磁兼容要求
- Android 异步任务
- QCC蓝牙芯片PIO操作
- 和金融男谈恋爱 vs 和程序员谈恋爱
- mysql---运维角度浅谈MySQL数据库优化
- c语言中的各种变量是如何存储的(-)
- 基于VuePress搭建网站
- 红帽子linux网络播放器,redhat默认播放器(totem)解码包安装
- php cpu占有率过高怎么办,system占用cpu过高怎么办
- 解决UglifyJs Unexpected token punc «{», expected pun 报错问题
- 学习Springboot一之Springboot+Mybatis(注解形式)+Mysql+Web简单Demo
- flex布局 \ 圣杯布局