【问题标题】:How to export a spreadsheet to PDF with columns populating the full page width如何将电子表格导出为 PDF,其中的列填充整个页面宽度
【发布时间】:2017-05-25 22:37:40
【问题描述】:

大家好。我创建了一个宏来导出我在 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

【问题讨论】:

  • 为了清楚起见,我已经尝试了stackoverflow.com/questions/33127693/… 这里的一些解决方案,尽管那是如何将大量列“压缩”到一个 PDF 中。我试图做相反的事情,将 20 列整齐地放入一个 PDF 文档中,没有任何右边距或左边距......
  • 您的工作表在“打印预览”中看起来是否正常或右边距较宽?
  • 如果我将工作簿视图设置为分页预览模式并手动为第 1 页选择相同的范围,仍然有一个小的边距,但在打印预览中看起来好多了。不幸的是,我尝试做同样的事情,然后运行 ​​pdf 生成器(不包括页面设置步骤),但它仍然在 pdf 文档中有边距(这让我相信这是 pdf 步骤的问题,而不是在 excel 中格式化)

标签: vba excel pdf pdf-generation


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多