Excel多个sheet导出pdf 您所在的位置:网站首页 excel怎么导出pdf一页 Excel多个sheet导出pdf

Excel多个sheet导出pdf

2023-12-08 03:40| 来源: 网络整理| 查看: 265

背景一:一个Excel格式的预算表下有多个sheet 需求一:将多个sheet导出为一个pdf 解决方案:打开有多个sheet的excel工作表,打开vba编辑器(快捷键为Alt和F11一起摁下),然后粘贴以下代码:

Sub ConvertPDF() strPath = ThisWorkbook.Path & "\" For Each s In Sheets If s.Name "w" Then 'w为当前excel表的名称 s.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath & s.Name & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End If Next End Sub

点击运行,运行结果如下: 在这里插入图片描述 最后使用Adobe Acrobat DC按顺序合并以上pdf即可。

背景二:一个文件夹下有有多个拥有多个sheet的Excel表格 需求二:将所有Excel中所有sheet导出为一个pdf 解决方案:vba编辑器就不多说了,打开复制以下代码:

Sub ExportToPDF() Dim Arr, Str1, Str2, Shp, myPath1, myPath2, MyPos, Na, Sh, i1, i2 On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False Arr = Array(".xls", ".xlsx", ".xlsm") myPath1 = "D:\qwerdf\" '文件的路径粘贴到这里 myPath2 = myPath1 & "zxcv\" '导出的路径这是好 MkDir myPath2 '新建文一个件夹 Set fs = CreateObject("Scripting.FileSystemObject") Set fo = fs.GetFolder(myPath1) For Each fi In fo.Files i1 = 0 i2 = 0 Na = fi.Name Do i1 = MyPos i2 = i2 + 1 MyPos = InStr(MyPos + 1, Na, ".") If MyPos = 0 And i2 1 Then Str1 = Right(Na, Len(Na) - i1 + 1) Str2 = Left(Na, i1 - 1) & ".pdf" If UBound(Filter(Arr, Str1)) = 0 Then Workbooks.Open Filename:=myPath1 & Na For Each Sh In Workbooks(Na).Sheets Sh.PageSetup.Zoom = 80 Next Workbooks(Na).ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPath2 & Str2, Quality:=xlQualityStandard Workbooks(Na).Close End If Exit Do End If Loop Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

与方案一相比,方案二的优势在于:方案一仅仅适用于一个excel多个sheet,不适用于多个excel多个sheet;方案二进行了纸张打印面积80%的设置;方案二添加了错误警告和提示。 需要注意的是:无论是方案一还是方案二对excel后缀格式的要求都是小写,一半预算软件导出的excel后缀为大写.XLS,会检测不到,所以在运行之前我们要把后缀改为小写。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有