|
dcb6381211 发表于 2016-5-27 09:01
大师,在VBA页面打开sheet1后,里面有以下代码:
Private Sub cmdShowfrm_Click()
frmAutoPrint.Show 0 ...
首先sheet1中的代码跟打印没有任何关系,他只是负责加载frmAutoPrint这个窗体,而真正实现打印功能的是窗体中的代码:- Private Sub autoPrinter()
- 'Static COUNTER As Long
- Dim msg As String
- On Error GoTo err '意外错误捕捉
-
- Worksheets(1).EnableCalculation = False '关闭公式计算功能
- Application.DisplayAlerts = False
- Worksheets(1).PrintOut Copies:=1, Collate:=True '打印当前页
- MYPor.Value = COUNTER
- labCOUNTER.Caption = COUNTER
- labStat.Caption = "当前打印第 " & COUNTER & "张!"
-
- If chkSaveas.Value = 1 Then Call Macro1 '录的宏
- If chkSaveas.Value = 1 Then ThisWorkbook.Save
-
-
- Worksheets(1).EnableCalculation = True '开始公式计算功能
- COUNTER = COUNTER + 1 '计数器运行
- PrintTime (txtDelay.Text) ' 延迟执行下次动作
- If COUNTER <= txtPage.Text Then
- If cmdPause.Tag = "" Then
- Call autoPrinter
- End If
- Else
-
- msg = MsgBox("当前打印工作已执行完毕,是否继续向后打印" & txtPage.Text & "张?", _
- 36, "Auto Print")
- If msg = vbYes Then
- COUNTER = 1
- labCOUNTER.Caption = 1
- Call autoPrinter
- Else
- cmdReset_Click
- End If
-
- End If
-
- Exit Sub
- err:
- MsgBox err.Description, 16, "Error"
- End Sub
复制代码 这个代码中Worksheets(1).PrintOut Copies:=1, Collate:=True 才真正实现了打印。
对于你描述的需求,如果你不懂编程,那我建议你不要修改程序了,只要设置每台电脑的默认打印机就行了,这样最方便!如果打印的时候选的不是默认打印机,那可以先通过工作簿自带的打印功能先去选择相应的打印机,然后再去执行这个按钮打印,以上均为使用操作及设置实现。如果一定要通过代码来实现非默认打印机的选择,需要先知道这台打印机的系统名称,注意每台电脑哪怕对应的是同一台打印机,这个名称字符串也会有不一样,所以需要去测试每台电脑的打印机名称,然后再去进行代码设置,所以相比下,建议不要修改代码
|
评分
-
查看全部评分
|