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

如何修改VBA代码设置PDF打印的纵向布局与指定打印区域

修改VBA代码实现纵向PDF打印并使用指定打印区域

关键修改点:

  • 强制设置打印方向为纵向
  • 启用使用指定打印区域(修正原代码参数错误)
  • 修复原代码中未定义的trailing变量问题

修改后的完整代码:

Sub savePDFandEmail()

Dim strPath As String, strFName As String
Dim OutApp As Object, OutMail As Object

' 修复路径变量,移除未定义的trailing变量
strPath = Environ$("temp") & "\"

strFName = ActiveWorkbook.Name
strFName = Left(strFName, InStrRev(strFName, ".") - 1) & "_" & ActiveSheet.Name & ".pdf"

' 设置打印方向为纵向
ActiveSheet.PageSetup.Orientation = xlPortrait

' 导出PDF时使用指定打印区域(IgnorePrintAreas设为False)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    strPath & strFName, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
    .to = Range("H8")
    .CC = Range("H9")
    .BCC = ""
    .Subject = Range("D1")
    .Body = Range("D2") & vbCr
    .Attachments.Add strPath & strFName
    '.Display    '取消注释这行并注释.Send,可在发送前打开邮件窗口预览
    .Send        '保持此行不变则点击按钮直接发送邮件
End With

Kill strPath & strFName
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing  
End Sub

额外说明:

  1. 打印区域设置:运行代码前,需先在Excel中手动设置打印区域:选中目标区域 → 切换到「页面布局」选项卡 → 点击「打印区域」→ 选择「设置打印区域」。
  2. 纵向打印:代码中ActiveSheet.PageSetup.Orientation = xlPortrait强制将当前工作表打印方向设为纵向,若需横向可改为xlLandscape。
  3. 路径修复:原代码中trailing变量未定义会导致路径错误,已移除该变量,改为直接使用系统临时文件夹路径。

内容的提问来源于stack exchange,提问作者Simon Yip

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:15