Excel Application.Printers返回错误消息“对象不支持此属性或方法”

Excel Application.Printers返回错误消息“对象不支持此属性或方法”,excel,vba,excel-2003,Excel,Vba,Excel 2003,我是否需要选择特定引用以使打印机属性可见?哪一个?Excel VBA工作表对象具有打印预览方法。如果不需要默认设置,可以从预览屏幕选择打印机。此外,工作表上的PageSetup对象有许多属性用于准备工作表进行打印 下面是一个例子: Public Sub PrintActiveSheet_S() Dim worksheetPrintable As Worksheet Dim iLastDataRow As Integer Dim iRowCount As Integer Dim i

我是否需要选择特定引用以使打印机属性可见?哪一个?

Excel VBA工作表对象具有打印预览方法。如果不需要默认设置,可以从预览屏幕选择打印机。此外,工作表上的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

Application.Printers在Excel中不可用,尽管它在Access中