如果需要对多张工作表分别打印并保存PDF,怎么做?
时间: 2024-10-08 14:08:36 浏览: 13
如果你需要对Excel工作簿中的多张工作表分别打印并保存为PDF,可以稍微修改之前的代码,添加一个循环来遍历每个工作表。这里是一个示例,假设你想从第2页开始到所有工作表:
```vba
Sub PrintAllSheetsToPDF()
Dim ExcelApp As Object
Dim WorkBook As Object
Dim Worksheets() As Worksheet
Dim i As Long
Dim PDFName As String
PDFName = "MyWorkbook_Sheets.pdf" ' 共享的PDF文件名
' 创建Excel应用程序实例
Set ExcelApp = CreateObject("Excel.Application")
' 打开或新建工作簿
Set WorkBook = ExcelApp.Workbooks.Open
' 获取所有工作表
Worksheets = WorkBook.Worksheets
For i = 2 ' 开始于第2个工作表,因为默认情况下Sheet1通常是隐藏的
' 创建PDF文件名,包含当前工作表编号
Dim PDFTempName As String
PDFTempName = Replace(PDFName, "_", "_" & CStr(i)) ' 例如"MyWorkbook_Sheet1.pdf", "MyWorkbook_Sheet2.pdf"
' 打印当前工作表
Worksheets(i).PrintOut
' 将工作表保存为PDF
Set PDFWriter = CreateObject("ACROEXCH.App")
PDFWriter.CreatePDF Filename:=PDFTempName, ActiveDocument:=Worksheets(i)
' 清理对象
Set PDFWriter = Nothing
Next i
' 关闭工作簿
WorkBook.Close SaveChanges:=False
ExcelApp.Quit
End Sub
```