代码之家  ›  专栏  ›  技术社区  ›  user7168530

如何将电子表格导出为PDF,其中列填充整个页面宽度

  •  2
  • user7168530  · 技术社区  · 8 年前

    大家好。我创建了一个宏来导出我在excel中构建的一些模板。模板的范围是A1:T79。我设置了下面的代码以获取该范围,并将其转换为PDF文档(工作正常)。

    问题是它创建的pdf文档在右侧有很大的空间。我希望列(A到T)能够完全填充页面宽度(长度调整到多少页面无关紧要)。

    我尝试了很多方法,并查看了这个网站上的一些相关链接,但都没有成功(这就是为什么我再次提问,而不是回复一年多前的老帖子!)。任何帮助都将不胜感激。代码如下。如果我没有正确解释任何事情,请告诉我,我将在下面作出回应。谢谢!:)

    Sub PDF_Gen()
    
    'Set Page Area. My attempt at trying to fix the page width which doesn't work
    
    With ActiveSheet.PageSetup
        .PrintArea = ActiveSheet.Range("A1:T79")
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .Zoom = False
    End With
    
    'Convert to PDF and save document in C drive
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\template1.pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    
    End Sub
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   user7168530 user7168530    8 年前

    奇怪的是,这一问题现在已经解决了。我刚刚设置了分页符预览范围,这次它起作用了,所以我不会问任何问题,只接受它!这是我要使用的代码

    Sub PDF_Gen()
    
    Dim Title As String
    
    'Set Page Break Preview area
    
    ActiveWindow.View = xlPageBreakPreview
    ActiveSheet.PageSetup.PrintArea = "$A$1:$T$79"
    
    'Convert to PDF and save in C drive
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\template1.pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    
    End Sub