在Excel VBA中,可以使用以下代码将每个工作表的第一页另存为PDF:
Sub SaveWorksheetsAsPDF()
Dim ws As Worksheet
Dim savePath As String
' 设置保存路径
savePath = "C:\Path\To\Save\PDFs\"
' 循环遍历每个工作表
For Each ws In ThisWorkbook.Worksheets
' 检查工作表是否有内容
If WorksheetFunction.CountA(ws.Cells) <> 0 Then
' 创建新的工作簿
Dim newWorkbook As Workbook
Set newWorkbook = Workbooks.Add
' 将当前工作表的第一页复制到新的工作簿中
ws.Copy Before:=newWorkbook.Sheets(1)
' 删除新工作簿中的其他工作表
Application.DisplayAlerts = False
Do While newWorkbook.Sheets.Count > 1
newWorkbook.Sheets(2).Delete
Loop
Application.DisplayAlerts = True
' 保存新工作簿为PDF文件
newWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath & ws.Name & ".pdf"
' 关闭新工作簿
newWorkbook.Close SaveChanges:=False
End If
Next ws
End Sub
这段代码首先定义了一个保存路径 savePath
,你可以根据自己的需求修改为你想要保存PDF文件的路径。
然后,通过循环遍历每个工作表 For Each ws In ThisWorkbook.Worksheets
,检查工作表是否有内容 If WorksheetFunction.CountA(ws.Cells) <> 0
。
如果工作表有内容,则创建一个新的工作簿 Dim newWorkbook As Workbook: Set newWorkbook = Workbooks.Add
,并将当前工作表的第一页复制到新的工作簿中 ws.Copy Before:=newWorkbook.Sheets(1)
。
接下来,删除新工作簿中的其他工作表,只保留复制的第一页。这里使用了一个循环来删除工作表,直到新工作簿中只剩下一个工作表为止。
最后,使用 newWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath & ws.Name & ".pdf"
将新工作簿保存为PDF文件。
请注意,这段代码将每个工作表的第一页另存为PDF文件,如果你想要保存其他页,可以根据需要进行修改。
腾讯云相关产品和产品介绍链接地址:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云