Application.Printers возвращает сообщение об ошибке «Объект не поддерживает это свойство или метод» - PullRequest
1 голос
/ 06 мая 2011

Нужно ли выбирать конкретную ссылку, чтобы сделать свойство принтеров видимым? Какой?

Ответы [ 2 ]

0 голосов
/ 11 января 2013

Application.Printers недоступен в Excel, хотя в Access.

0 голосов
/ 06 мая 2011

Объект Excel VBA Worksheet имеет метод PrintPreview.Вы можете выбрать свой принтер на экране предварительного просмотра, если по умолчанию это нежелательно.Кроме того, объект 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  '/151855/pechat-bystree-v-excel
  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
...