【问题标题】:Application.Printers returns error message "Object does not support this property or method"Application.Printers 返回错误消息“对象不支持此属性或方法”
【发布时间】:2011-05-06 11:05:14
【问题描述】:

是否需要选择特定的参考才能使打印机属性可见?哪一个?

【问题讨论】:

    标签: excel vba excel-2003


    【解决方案1】:

    Excel VBA Worksheet 对象有一个 PrintPreview 方法。如果不需要默认设置,您可以从预览屏幕中选择您的打印机。此外,Worksheet 上的 PageSetup 对象有很多属性可以让工作表准备好打印。

    这是一个例子:

    Public Sub PrintActiveSheet_S()
      Dim worksheetPrintable As Worksheet
      Dim iLastDataRow As Integer
      Dim iRowCount As Integer
      Dim iPrintAreaEndRow As Integer
      Dim origScreenUpdating As Boolean
      Dim origCalcMode As Integer
    
      On Error GoTo eh
    
      Set worksheetPrintable = ActiveSheet
    
      worksheetPrintable.PageSetup.PrintArea = "$A$1:$AD$" & iPrintAreaEndRow
    
      'Speed up printing setup  'http://stackoverflow.com/questions/230382/how-to-print-faster-in-excel-vba
      origScreenUpdating = Application.ScreenUpdating
      Application.ScreenUpdating = False
      origCalcMode = Application.Calculation
      Application.Calculation = xlCalculationManual
      With ActiveSheet.PageSetup
        If Not .BlackAndWhite = False Then .BlackAndWhite = False
        If Not .BottomMargin = Application.InchesToPoints(0.25) Then .BottomMargin = Application.InchesToPoints(0.25)
        If Not .CenterFooter = "Page &P of &N" Then .CenterFooter = "Page &P of &N"
        If Not .CenterHeader = "" Then .CenterHeader = ""
        If Not .CenterHorizontally = True Then .CenterHorizontally = True
        If Not .CenterVertically = False Then .CenterVertically = False
        If Not .Draft = False Then .Draft = False
        If Not .FirstPageNumber = xlAutomatic Then .FirstPageNumber = xlAutomatic
        If Not .FitToPagesTall = 50 Then .FitToPagesTall = 50
        If Not .FitToPagesWide = 1 Then .FitToPagesWide = 1
        If Not .TopMargin = Application.InchesToPoints(0.25) Then .TopMargin = Application.InchesToPoints(0.25)
        If Not .FooterMargin = Application.InchesToPoints(0.25) Then .FooterMargin = Application.InchesToPoints(0.25)
        If Not .HeaderMargin = Application.InchesToPoints(0.25) Then .HeaderMargin = Application.InchesToPoints(0.25)
        If Not .LeftMargin = Application.InchesToPoints(0.25) Then .LeftMargin = Application.InchesToPoints(0.25)
        If Not .LeftFooter = "" Then .LeftFooter = ""
        If Not .LeftHeader = "" Then .LeftHeader = ""
        If Not .Order = xlDownThenOver Then .Order = xlDownThenOver
        If Not .Orientation = xlLandscape Then .Orientation = xlLandscape
        If Not .PaperSize = xlPaperLegal Then .PaperSize = xlPaperLegal
        If Not .PrintComments = xlPrintNoComments Then .PrintComments = xlPrintNoComments
        If Not .PrintGridlines = False Then .PrintGridlines = False
        If Not .PrintHeadings = False Then .PrintHeadings = False
        If Not .PrintTitleColumns = "" Then .PrintTitleColumns = ""
        If Not .PrintTitleRows = "$3:$5" Then .PrintTitleRows = "$3:$5"
        If Not .RightFooter = "" Then .RightFooter = ""
        If Not .RightHeader = "" Then .RightHeader = ""
        If Not .RightMargin = Application.InchesToPoints(0.25) Then .RightMargin = Application.InchesToPoints(0.25)
        If Not .RightFooter = Now Then .RightFooter = Now
        If Not .Zoom = False Then .Zoom = False
      End With
    
        worksheetPrintable.PrintPreview
    
      GoTo func_exit
    
    
    eh:
      gEStruc.iErrNum = Err.Number
      gEStruc.sErrorDescription = Err.Description
      gEStruc.sErrorSource = Err.Source
      m_rc = iErrorHandler_F(gEStruc)
    
      If m_rc = CMD_RETRY Then
        Resume
      End If
    
    func_exit:
    
      Application.ScreenUpdating = origScreenUpdating
      Application.Calculation = origCalcMode
      Exit Sub
    
    End Sub
    

    【讨论】:

      【解决方案2】:

      Application.Printers 在 Excel 中不可用,但在 Access 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        • 1970-01-01
        • 1970-01-01
        • 2011-02-14
        • 1970-01-01
        • 1970-01-01
        • 2013-10-05
        相关资源
        最近更新 更多