无法设置纸张尺寸

时间:2018-01-03 16:38:24

标签: excel vba excel-vba

以下是绑定到activeX按钮的代码。

With Worksheets("SUMMARY").PageSetup
    .HeaderMargin = Application.InchesToPoints(0.25)
    .FooterMargin = Application.InchesToPoints(0.1)
    .LeftMargin = Application.InchesToPoints(1)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(1)
    .CenterFooter = "Page &P of &N"
    .PrintTitleRows = Rows("1:7").Address
    .RightFooter = ""
    .Orientation = xlLandscape
    .PaperSize = xlPaperLedger 'Error 1004
Worksheets("SUMMARY").PrintOut
End With

出于某种原因,我一直在1004 error行获得.PaperSize = xlPaperLedger。打印机支持Ledger纸张,我可以手动打印,但由于某些原因,单击按钮时无法打印。

有很多受密码保护的纸张等,但我认为这不是问题。我之前打印过这段代码,它运行正常。

2 个答案:

答案 0 :(得分:0)

取决于打印驱动程序。每个打印驱动程序调用不同的纸张大小。例如,打印到Adobe PDF打印机会将其称为xlPaperLedger

但是,使用HP通用打印驱动程序打印到HP打印机时,需要以下代码:

Worksheets("Sheet1").PageSetup.PaperSize = 120

您可以通过录制宏并在Excel中手动设置文件大小来找出打印机所称的内容。

<强> TL; DR: 一些类似的打印驱动程序称为不同的名称。

答案 1 :(得分:-2)

即使您可以手动打印,这仍然可能是打印机驱动程序问题。您可以尝试安装32/64位版本的打印机驱动程序(取决于您当前拥有的),看看是否有所作为