Excel宏导出PDF时日期显示删除线的问题求助
解决VBA导出PDF时日期显示删除线的问题
你的问题大概率是因为PrintOut方法依赖系统打印驱动的渲染逻辑,和Excel手动导出PDF的机制不一致。换成Excel原生的ExportAsFixedFormat方法就能解决,同时优化代码里的Select操作,避免不必要的界面交互干扰格式。
修改后的代码
Sub Export_Overview() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim OrificeOverview As Worksheet Set OrificeOverview = ThisWorkbook.Worksheets("Orifice Overview") ' 修改矩形填充(直接操作Shape,无需Select) With OrificeOverview.Shapes("Rectangle 1").Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorBackground1 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 .Transparency = 0 .Solid End With ' 直接设置目标工作表的打印区域 With OrificeOverview.PageSetup .PrintArea = "Top_Corner:Bottom_Corner" End With ' 用原生PDF导出方法替代PrintOut OrificeOverview.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ThisWorkbook.Path & "\Orifice_Overview.pdf", ' 可自定义导出路径和文件名 Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False ' 导出后是否自动打开PDF,按需调整 Application.Calculation = xlCalculationAutomatic ' 恢复矩形填充(直接操作Shape) With OrificeOverview.Shapes("Rectangle 1").Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorBackground2 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = -0.75 .Transparency = 0 .Solid End With Application.ScreenUpdating = True End Sub
关键改动说明
- 替换导出方法:
ExportAsFixedFormat是Excel专门为PDF/XPS导出设计的API,和手动"另存为PDF"使用同一套渲染逻辑,不会出现打印驱动导致的格式异常。 - 移除Select操作:原代码里的
Select不仅效率低,还可能因界面选中状态干扰单元格格式渲染,直接操作工作表和Shape对象更稳定。 - 明确目标对象:所有设置直接作用于
OrificeOverview工作表,避免依赖ActiveSheet带来的不确定性。
额外注意事项
- 记得修改
Filename参数为你需要的导出路径,比如固定路径或者和原文件同目录。 - 如果需要导出后自动打开PDF,把
OpenAfterPublish改成True即可。
内容的提问来源于stack exchange,提问作者Jake C
相关产品推荐
相关产品推荐

