因为不懂代码,所以我从网上搜集了1个多薄批打的宏表,只是听说它的实现办法是Excel本身的另存PDF。就是不能按指定的sheet名称打印,不知楼主能不能研究1个按指定的sheet名称实现多薄批打。http://url.cn/42G3sNd
- Sub 批量将Excel文件转成PDF()
- Dim str As String, n As Long, fd, Nam As String
- On Error GoTo err '程序出错时则退出
- Set fd = Application.FileDialog(msoFileDialogFolderPicker)
- With fd '显示一个选择文件夹的对话框,如果选择了文件夹则取其名称,否则退出
- If .Show = -1 Then t = .SelectedItems(1) Else Exit Sub
- End With
- Application.ScreenUpdating = False '并闭屏幕更新,提升速度
- str = Dir(t & "\*.xl*") '开始查找文件,格式为所有Excel文件
- While Len(str) > 0
- n = n + 1 '累加变量,该变量代表文件数量
- Workbooks.Open (t & IIf(Right(t, 1) = "", "", "") & str) '打开工作簿
- Nam = CreateObject("Scripting.FileSystemObject").getextensionname(str) '获取文件的扩展名
- '开始进行格式转换,两个参数分别表示文件名、转换质量。还有转换后是否打开PDF档的参数省略了,表示不查找。
- ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=(t & IIf(Right(t, 1) = "", "", "") & Replace(str, Nam, "pdf")), Quality:=xlQualityStandard
- Workbooks(str).Close False '关闭工作簿
- str = Dir() '查找下一个
- Wend
- Application.ScreenUpdating = True '恢复屏幕更新
- err:
- End Sub
复制代码 |