【发布时间】:2016-01-12 16:20:42
【问题描述】:
我正在尝试使用 Excel VBA 代码将具有大量列 (70+) 的 microsoft excel 文件转换为 pdf。
在活动工作簿中,我正在尝试将“Sheet1”保存为所需路径的 PDF 格式。我有以下代码。
Sub GetSaveAsFilename()
Dim fileName As String
fileName = Application.GetSaveAsFilename(InitialFileName:="", _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Path and FileName to save")
If fileName <> "False" Then
With ActiveWorkbook
.Worksheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
fileName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End If
End Sub
当我运行 VBA 代码并保存 pdf 文件时,我看到了;整个 excelsheet 不适合在同一页面中。它正在下一页显示一些内容。
(只有几列出现在第一页,其余的出现在下一页等等......)。
我检查过How to publish a wide worksheet in PDF format?。
但是,将页面布局设置为横向并手动将 excel 文件转换为 PDF;还会在下一页显示一些列。
网上有很多免费的 Excel 到 PDF 转换器,结果都一样。
VBA 中是否有任何可用的功能,通过它我可以将所有列放在 PDF 的单个页面中?
【问题讨论】:
-
您检查过工作表的页面设置吗?您可能设置了较大的边距、不合适的页面大小等。您还可以通过选择查看 --> 页面布局 来控制工作表的打印区域
-
我的页面大小是 A4,页面布局 --> 方向设置为
Landscape感谢您的建议。现在我还要检查其他页面设置,例如比例,检查我是否可以手动将 excel 转换为 PDF 并返回给您 -
是的,有时它只是反复试验,直到你完全按照你的需要得到它...... :)
-
你能把它发布在两页上吗(无论如何,10% 不是真的不可读吗?)如果你在左边保留一些列来打印每张纸以识别第二张纸上的数据行?
-
有一个打印选项可以强制您的数据为 1 页宽和/或 1 页高。当您单击此 [在页面布局下 -> 缩放以适合] 时,它会向您显示它缩小了多少数据以适合 1 页。如果您录制了一个宏,它将为您提供设置该选项的 VBA 代码。
标签: vba excel pdf pdf-generation