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 batchPrintSheetSheets("源数据").Select '进入源数据页面End Sub

Private Sub 开始打印_Click() Call printSheet End Sub

信封的样式:如下样式的excel文件,我在最上现放置了两个按钮。通过vba脚本打印出信封的样式。

会让你的心态更平和更坦然,也会让你心无旁骛,更会让你的心灵得到解脱和抚慰。

Excel通过VBA打印信封

相关文章:

你感兴趣的文章:

标签云: