excel - 在不同页面上将工作表导出为 PDF
问题描述
我想在 PDF 文档中保护区域 A1 到 BJ10。由于这个区域相当宽,我想将这些部分分成三页。A1:R10、S1:BB10 和 BC1:BJ10。
我当前的代码是:
Sub ToPDF()
Sheets(1).PageSetup.Orientation = 2
Sheets(1).PageSetup.Zoom = False
Sheets(1).PageSetup.FitToPagesWide = 1
Sheets(1).Range("A1:BJ10").ExportAsFixedFormat xlTypePDF, Filename:=Path, Openafterpublish:=True
End Sub
如何将上述区域保存为 PDF,其中该区域的每个部分都有自己的页面?谢谢!
解决方案
一种方法是将范围复制到临时工作簿,然后每个工作表都是一个单独的页面。
Option Explicit
Sub ToPDF()
Dim wb As Workbook, ws As Worksheet
Dim wbTemp As Workbook, wsTemp As Worksheet
Dim ar, i As Long, sFilename As String
' ranges
ar = Array("A1:R10", "S1:BB10", "BC1:BJ10")
Set ws = ThisWorkbook.Sheets(1)
Set wbTemp = Workbooks.Add(xlWBATWorksheet)
sFilename = "ranges.pdf"
With wbTemp
For i = 0 To UBound(ar)
If i > 0 Then .Worksheets.Add after:=.Sheets(i)
With .Sheets(i + 1)
.PageSetup.Orientation = 2
.PageSetup.Zoom = False
.PageSetup.FitToPagesWide = 1
ws.Range(ar(i)).Copy .Range("A1")
End With
Next
.ExportAsFixedFormat xlTypePDF, Filename:=sFilename, Openafterpublish:=True
.Close False
End With
End Sub
推荐阅读
- apache-spark - spark_apply 适用于一个数据集,但在另一个数据集上失败(两个数据集的类型和结构相同)
- mysql - Oracle 等效于 useServerPrepStmts=false & rewriteBatchedStatements=true
- excel - Workbooks.open 不返回任何内容
- visual-studio-code - VSCode 将打开的工作区列表存储在哪里?
- python - 将字典值转换为新字典
- php - 如何将 wordpress 博客作为路由添加到 Yii2 网站
- windows - 如何使用cmd中的嵌套for循环将目标文件替换为源位置的另一个文件
- python - 从 django 中的表中过滤掉空值
- java - 在同一上下文中使用 Spring Boot 2 OAuth Client 和 Resourcesserver
- java - 适配器抛出 java.lang.NullPointerException