|
楼主 |
发表于 2016-12-8 13:26
|
显示全部楼层
批量打印部分的代码如下:
- Sub batchPrint()
- '批量打印快递单
- Dim vi As Integer
- Dim va As Integer
- Dim vb As Integer
- Dim vm As String
-
- '取得待打印范围
- va = Cells(5, 16)
- vb = Cells(5, 18)
- If va > 300 Or vb > 300 Or va > vb Then
- va = IIf(va > 300, 300, va)
- vb = IIf(vb > 300, 300, vb)
- If va > vb Then
- vi = va
- va = vb
- vb = vi
- End If
- Cells(5, 16).Value = va
- Cells(5, 18).Value = vb
- End If
- va = va + 6
- vb = vb + 6
-
- '循环遍历待打印记录,若不为空则打印。
- vm = "请确认快递单已装入打印机,是否继续?"
- If MsgBox(vm, 65, "提示") = 1 Then
- infoSender
- For vi = va To vb
- If Cells(vi, 2) <> "" Then
- infoReciper (vi)
- ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
- End If
- Next vi
- infoReciper (Cells(3, 16).Value + 6) '恢复当前所指定的记录号
- End If
- End Sub
- Sub infoReciper(ByVal tRow As Integer)
- '根据给定行数,更新打印区域的收件人信息
- Application.ScreenUpdating = False
- With ActiveSheet
- .inName.Value = Trim(Cells(tRow, 2).Value)
- .inArea.Value = Trim(Cells(tRow, 3).Value) & " " & Trim(Cells(tRow, 4).Value)
- .inAddress.Value = Trim(Cells(tRow, 5).Value) & " " & Trim(Cells(tRow, 6).Value)
- .inCompany.Value = Trim(Cells(tRow, 7).Value)
- .inPhone.Value = Trim(Cells(tRow, 8).Value)
- .xGoods.Value = Trim(Cells(tRow, 9).Value)
- .xNum.Value = Trim(Cells(tRow, 10).Value)
- .xRemark.Value = Trim(Cells(tRow, 11).Value)
- End With
- Application.ScreenUpdating = True
- Application.Calculation = xlCalculationAutomatic
- End Sub
复制代码 |
|