如何通过VBA实现Excel文件同时导出为同路径下的XLSX与PDF格式
解决方法
你只需在原有代码基础上增加路径提取、XLSX格式保存的逻辑即可实现需求,修改后的完整代码如下:
Dim varResult As Variant Dim xlsxPath As String ' 调用保存对话框选择PDF保存路径 varResult = Application.GetSaveAsFilename(FileFilter:= _ "PDF (*.pdf), *.pdf", Title:="Untersuchungsbericht speichern", _ InitialFileName:="Kunststoffsägen Untersuchungsbericht Auftragsnummer " & KunststoffsägenDE2.TextBoxAuftrag.Value) ' 判断用户是否点击取消,取消则直接退出避免报错 If varResult = False Then Exit Sub ' 设置文档关键字 ActiveWorkbook.BuiltinDocumentProperties("Keywords") = KunststoffsägenDE2.TextBoxAuftrag.Value & " " & KunststoffsägenDE2.TextBoxMaterial.Value & " " & KunststoffsägenDE2.TextBoxFortlaufend.Value & " Untersuchungsbericht" & " Kunststoffsägen" & " Laufleistung" ' 导出PDF文件 ActiveSheet.ExportAsFixedFormat Filename:=varResult, Type:=xlTypePDF, OpenAfterPublish:=True, IncludeDocProperties:=True ' 生成同路径同名称的XLSX保存路径 xlsxPath = Replace(varResult, ".pdf", ".xlsx", , , vbTextCompare) ' 保存为XLSX格式,若工作簿包含VBA宏可将后缀改为.xlsm,格式参数改为xlOpenXMLWorkbookMacroEnabled ActiveWorkbook.SaveAs Filename:=xlsxPath, FileFormat:=xlOpenXMLWorkbook
修改说明
- 新增了用户取消操作的判断逻辑,避免用户点击保存对话框的取消按钮后代码运行报错
- 新增
xlsxPath变量,通过替换PDF路径的后缀直接得到同目录同名称的XLSX保存路径,无需用户二次选择路径 - 新增
SaveAs方法调用完成XLSX格式保存,如果你当前的工作簿包含VBA宏,只需调整保存后缀和格式参数即可正常保存带宏的文件。
内容的提问来源于stack exchange,提问作者MarkAKE
相关产品推荐
相关产品推荐

