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打印信封相关推荐

  1. Word、Excel组合 批量打印信封

    很多学校期末都都要给学生寄成绩通知单,教务处需要打印大量的信封.利用Word XP与Excel XP可以协作来批量打印信封,一起来看看吧. 1.准备阶段 (1)新建一Excel文件"新生名单 ...

  2. Word与Excel组合工作 批量打印信封

    很多学校期末都都要给学生寄成绩通知单,教务处需要打印大量的信封.利用Word XP与Excel XP可以协作来批量打印信封,一起来看看吧. 1.准备阶段 (1)新建一Excel文件"新生名单 ...

  3. 【Monkey Run】Excel编程 VBA

    Excel编程 VBA 天气如此舒适,装B逐渐减少,所以最近的blog输出一直停滞不前.然而最近一直忙于Excel编程,觉得也有点从0到1的学习创造过程,有必要总结记录下.具体的VBA编程知识可以借鉴 ...

  4. excel怎么设置打印区域_Excel如何设置打印区域及打印区域如何调整

    方法/步骤 1.打开编辑好的Excel文档,选中想要打印的区域,如图所示(阴影图层部分为所要打印的区域) 2.点击页面布局选项卡,选择打印区域选项, 点击设置打印区域子选项,这时候我们就成功设置了打印 ...

  5. Excel与VBA编程中的常用代码

    Excel与VBA编程中的常用代码 用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的! 使用Dim语句 Dim a as integer '声明A为整形变量 Dim a '声 ...

  6. 打印信封格式怎么调计算机,打印信封,就是这么简单

    原标题:打印信封,就是这么简单 信件,是20世纪人们之间通讯的重要工具之一.现在虽然大家都很少写信了,但是在一些商务场合,信件仍然有其不可替代的作用.在职场中,制作和批量打印信封仍然是一项非常重要的办 ...

  7. 关于 Excel 2003 vba usedrange属性

    关于 Excel 2003 vba usedrange属性 vba usedrange属性 如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想 ...

  8. 《Excel与VBA开发》一书上市时间

    如果没有意外的话,<Excel与VBA开发>一书在9月初应该就可以上市.

  9. 【Excel】VBA批量修改文件名

    Excel:VBA批量修改文件名 Dim filePath As Variant '定义filepath为变量 Dim obj As Object '定义obj为变量对象 Dim fld, ff, g ...

最新文章

  1. Linux下安装搜狗拼音
  2. 《用Python进行自然语言处理》第 9 章 建立基于特征的文法
  3. vue 中eslint 格式报错
  4. GDCM:创建DICOMDIR的测试程序
  5. Struts2 第9part 通过实现ModelDriven来接收参数
  6. jQuery 项目 兼容IE ,缓存问题,等总结
  7. android游戏开发框架libgdx的使用(十五)—TWL布局
  8. 一步一步写算法(之爬楼梯)
  9. 电工产品的电磁兼容要求
  10. Android 异步任务
  11. QCC蓝牙芯片PIO操作
  12. 和金融男谈恋爱 vs 和程序员谈恋爱
  13. mysql---运维角度浅谈MySQL数据库优化
  14. c语言中的各种变量是如何存储的(-)
  15. 基于VuePress搭建网站
  16. 红帽子linux网络播放器,redhat默认播放器(totem)解码包安装
  17. php cpu占有率过高怎么办,system占用cpu过高怎么办
  18. 解决UglifyJs Unexpected token punc «{», expected pun 报错问题
  19. 学习Springboot一之Springboot+Mybatis(注解形式)+Mysql+Web简单Demo
  20. flex布局 \ 圣杯布局

热门文章

  1. go获取get请求参数
  2. localtime、localtime_s、localtime_r的区别和使用方法
  3. CSS3添加动态圆点
  4. 所有的GPIO引脚有一个内部微弱的上拉和下拉电阻,当引脚被配置为()时可以使用上拉或下拉电阻。
  5. 用DM对硬盘分区过程详解
  6. 史蒂夫·乔布斯语录(Steve Jobs Quotes)
  7. FileUpload1上传的文件类型_控制
  8. C++ stringstream
  9. 实现车辆检测+安全算法,玩转智慧交通AI应用!AidLux实战训练营第二期圆满收官
  10. Java实验2 3月30日