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

VBA调用Outlook发送邮件时Excel工作簿未附加问题咨询

问题原因

你代码里的附件添加逻辑存在3处可直接导致附件加载失败的语法/参数错误:

  • 盘符格式错误:路径开头的W\缺少盘符必须的冒号分隔符,正确写法为W:\
  • 路径字符串不完整:"W\Desktop\Files\Workbook1既没有闭合双引号,也没有补充工作簿的后缀名(如.xlsx/.xlsm),属于非法路径参数
  • 异常被静默忽略:你开启了On Error Resume Next配置,路径错误触发的运行时异常被直接跳过,不会弹出报错提示,最终仅表现为附件未添加

修复方案

将Mail_small_Text_Outlook过程中附件添加的代码行替换为正确的完整路径即可,示例如下:

Sub Mail_small_Text_Outlook()

Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "您好" & vbNewLine & vbNewLine & _
          "这是第1行内容" & vbNewLine & _
          "这是第2行内容"
On Error Resume Next
With xOutMail
    .To = "收件人邮箱地址"
    .CC = ""
    .BCC = ""
    .Subject = "单元格值触发的测试邮件"
    .Body = xMailBody
    ' 修正后的附件路径,注意冒号、后缀、闭合引号
    .Attachments.Add "W:\Desktop\Files\Workbook1.xlsx"
    ' 如果你要附加当前正在运行代码的工作簿,也可以用下面的写法避免写死路径出错
    ' .Attachments.Add ThisWorkbook.FullName
    .Display   '如果要直接发送替换为.Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

如果修复后还是无法添加附件,可以临时注释掉On Error Resume Next行,运行代码查看具体报错信息,定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:15:03