我是否需要选择特定参考以使打印机属性可见?哪一个?
答案 0 :(得分:0)
Excel VBA工作表对象具有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
答案 1 :(得分:0)
Application.Printers在Excel中不可用,但它位于Access中。