【问题标题】:Printing from Excel VBA从 Excel VBA 打印
【发布时间】:2011-10-06 06:18:51
【问题描述】:

尝试多次打印同一张 Excel 表格(例如 100 次),每次都会增加一个单元格(例如单元格 4F)。

我尝试过使用

Workbook_BeforePrint

增加单元格,但它需要与每个打印表的“选择打印机”对话框交互。

是否可以制作类似的东西:

a = getIntegerUserInput()
for i in 1..a
   increment 4F with one
   print the sheet suppressing the "select printer" dialog
end for

干杯

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您是否选择了默认打印机?

    我用过这个:

    Sub printinc()
    For i = 0 To 3
    Range("A1").Value = Range("A1").Value + 1
    Sheets("Sheet1").PrintOut
    Next
    End Sub
    

    它打印了 4 个副本,每次递增单元格 A1 中的值,而不会提示我进行设置或打印机选择。

    【讨论】:

      【解决方案2】:

      要打印一张纸,您可以使用这种代码(假设您知道要在哪台打印机上打印)PrintOut

      Sub PrintFile()
          Dim curPrinter As String
          curPrinter = Application.ActivePrinter
          Application.ActivePrinter = "Myprinter"
          ActiveWindow.SelectedSheets.PrintOut 
          Application.ActivePrinter = curPrinter
      End Sub
      

      因此,您可以创建一个循环来增加一个单元格并使用增量打印您的工作表。

      顺便说一句,您可以使用Before_print 来执行此操作,如果您不想显示打印对话框,您可以在调用过程Private Sub Workbook_BeforePrint( Cancel As Boolean) 时将Cancel 设置为False(参考MSDN

      您还可以阅读此 SO 线程以防止显示打印对话框:How do you prevent printing dialog when using Excel PrintOut method

      [编辑] 请参阅 Seyren 的回答,了解您想要的工作解决方案。但是,如果您真的想要循环 100 次,请注意性能。

      【讨论】:

        【解决方案3】:
        Private Sub Workbook_BeforePrint(Cancel As Boolean)
            '//supress recursion into this event when we print
            Application.EnableEvents = False
            '//increment
            If Not IsNumeric(ActiveSheet.Range("A1").Value) Then ActiveSheet.Range("A1").Value = 0
            ActiveSheet.Range("A1").Value = ActiveSheet.Range("A1").Value + 1
            '//do a default print
            ActiveSheet.PrintOut
            Application.EnableEvents = True
            '//prevent the default print
            Cancel = True
        End Sub
        

        【讨论】:

          猜你喜欢
          • 2020-03-19
          • 1970-01-01
          • 1970-01-01
          • 2015-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-11
          • 1970-01-01
          相关资源
          最近更新 更多