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

如何将「WC Referral Notice」工作表插入邮件正文且不立即发送?现有宏不适用

解决方法:将指定工作表插入邮件草稿(可手动添加附件后发送)

我完全懂你的需求——要把「WC Referral Notice」工作表的内容插入邮件正文,但不想直接发送,而是保留邮件编辑窗口,方便你浏览内容、添加多个附件后再手动发送。现有的宏要么直接触发发送,要么把整个工作簿当附件,确实不符合你的场景。

下面是调整后的宏代码,完美适配你的需求:

Sub Insert_WC_Referral_To_Email_Draft()
    Dim ws As Worksheet
    Dim outlookApp As Object
    Dim outlookMail As Object
    
    ' 定位到目标工作表「WC Referral Notice」
    Set ws = ThisWorkbook.Worksheets("WC Referral Notice")
    
    ' 初始化Outlook应用(如果已打开就复用,没打开就新建)
    On Error Resume Next
    Set outlookApp = GetObject(, "Outlook.Application")
    If outlookApp Is Nothing Then
        Set outlookApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0
    
    ' 创建新的邮件草稿
    Set outlookMail = outlookApp.CreateItem(0)
    
    ' 复制整个工作表的内容
    ws.Cells.Copy
    
    With outlookMail
        .Display ' 先显示邮件窗口,确保粘贴的内容格式正确
        ' 将工作表内容以原格式粘贴到邮件正文
        .GetInspector.WordEditor.Range.PasteAndFormat wdFormatOriginalFormatting
        ' 可预设邮件主题,也可以留空让你手动修改
        .Subject = "WC Referral Notice"
        ' 如需预设收件人,取消下面这行的注释并修改邮箱地址
        '.To = "your-recipient@example.com"
    End With
    
    ' 清除剪贴板的复制内容
    Application.CutCopyMode = False
    
    ' 释放占用的对象资源
    Set outlookMail = Nothing
    Set outlookApp = Nothing
    Set ws = Nothing
    
    MsgBox "邮件草稿已生成!工作表内容已插入正文,请添加附件后手动点击发送。", vbInformation
End Sub

这个宏的核心优势:

  • 自动定位到「WC Referral Notice」工作表,无需手动选中
  • 调用Outlook生成邮件草稿,不会自动发送,完全由你控制发送时机
  • 工作表内容以原格式粘贴到正文,保留排版样式
  • 邮件窗口保持打开状态,你可以自由添加附件、修改收件人/主题、编辑正文内容

注意事项:

  1. 确保你的电脑上安装并启用了Outlook
  2. 如果Excel提示宏被禁用,需要在「文件>选项>信任中心>信任中心设置>宏设置」中启用宏(建议选择「启用所有宏」或「启用数字签署的宏」,根据你的安全需求调整)
  3. 可以根据需要修改代码中的Subject(主题)或取消.To的注释来预设收件人

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:13:01