You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:39:03