如何将「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生成邮件草稿,不会自动发送,完全由你控制发送时机
- 工作表内容以原格式粘贴到正文,保留排版样式
- 邮件窗口保持打开状态,你可以自由添加附件、修改收件人/主题、编辑正文内容
注意事项:
- 确保你的电脑上安装并启用了Outlook
- 如果Excel提示宏被禁用,需要在「文件>选项>信任中心>信任中心设置>宏设置」中启用宏(建议选择「启用所有宏」或「启用数字签署的宏」,根据你的安全需求调整)
- 可以根据需要修改代码中的
Subject(主题)或取消.To的注释来预设收件人
内容的提问来源于stack exchange,提问作者AWard1001
相关产品推荐
相关产品推荐

