Excel宏需求:设置页面黑白后快速打印工作表(解决彩色打印异常)
Excel黑白批量打印宏报错修复方案
常见报错原因
- 部分工作表处于保护状态,无法修改页面设置属性
- 工作表打印区域设置无效或未配置
- Excel版本兼容性导致
PageSetup属性调用异常
修正后的宏代码
Sub PrintAllSheetsInBlackAndWhite() Dim ws As Worksheet Dim isSheetProtected As Boolean For Each ws In Worksheets ' 记录工作表保护状态,后续恢复 isSheetProtected = ws.ProtectContents ' 若工作表保护则解除,有密码需添加参数,如ws.Unprotect "yourPassword" If isSheetProtected Then ws.Unprotect ' 捕获页面设置时的错误,避免单个工作表问题中断整个流程 On Error Resume Next With ws.PageSetup .BlackAndWhite = True ' 强制黑白打印 .PrintQuality = 600 ' 设置打印分辨率,提升文字清晰度 .Draft = False ' 关闭草稿打印模式,防止文字模糊 End With On Error GoTo 0 ' 恢复默认错误处理 ' 执行打印,Copies设置打印份数,IgnorePrintAreas控制是否忽略打印区域 ws.PrintOut Copies:=1, IgnorePrintAreas:=False ' 恢复工作表保护状态,有密码需添加参数,如ws.Protect "yourPassword" If isSheetProtected Then ws.Protect Next ws End Sub
使用注意事项
- 若工作表设有保护密码,需在
Unprotect和Protect语句后补充密码参数,例如ws.Unprotect "123456" PrintQuality可根据打印机支持的分辨率调整,常见有效值为600、1200- 若需打印整个工作表而非预设打印区域,可将
IgnorePrintAreas改为True - 若仍出现打印问题,检查打印机驱动是否正常,或手动在单个工作表设置黑白打印后测试宏运行
内容的提问来源于stack exchange,提问作者Aura Aviator
相关产品推荐
相关产品推荐

