如何用Application.CommandBars.ExecuteMso指定打印页并打开Excel默认预览?
实现带指定页码的Excel官方打印预览
可以通过先配置Excel的打印页码范围,再调用官方打印预览命令的方式实现两者功能结合,具体VBA方案如下:
- 先设置目标打印页码范围,比如指定打印第2到第5页:
' 清空打印区域(若需打印整个工作表),也可指定具体区域如 "$A$1:$D$20" ActiveSheet.PageSetup.PrintArea = "" ' 设置起始页码 ActiveSheet.PageSetup.PrintFrom = 2 ' 设置结束页码 ActiveSheet.PageSetup.PrintTo = 5 - 调用官方打印预览命令:
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
完整可运行代码
Sub PrintPreviewWithSpecifiedPages() ' 自定义起始和结束页码 Dim startPage As Integer, endPage As Integer startPage = 2 endPage = 5 ' 应用打印页码配置 With ActiveSheet.PageSetup .PrintFrom = startPage .PrintTo = endPage .PrintArea = "" ' 替换为具体单元格区域可指定打印范围 End With ' 打开官方原生打印预览窗口 Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint") End Sub
说明:
- 执行代码后打开的是Excel原生官方打印预览窗口,且默认加载你指定的页码范围
- 若需针对整个工作簿设置,将代码中的
ActiveSheet替换为ActiveWorkbook即可
内容的提问来源于stack exchange,提问作者Júlio César Pedrini
相关产品推荐
相关产品推荐

