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

如何修改VBA代码实现MS Access中MailCDO对象多附件邮件发送

Access使用CDO.Message发送多附件邮件修改方案

CDO.Message对象的AddAttachment方法单次调用仅支持添加1个附件,不支持传入拼接的多路径字符串,这是你之前用逗号、&拼接路径不生效的根本原因,添加多个附件只需多次调用该方法即可。

代码修改要点

  • 修正原代码中第二个附件路径的赋值错误,删除多余的sFilePath =语句
  • 无需拼接路径,依次把每个附件的路径作为参数传入AddAttachment
  • 后续如果需要添加更多附件,按照相同逻辑新增路径变量、新增AddAttachment调用即可

修改后完整代码

Sub SendMultiAttachEmail()
    Dim sSubject As String
    Dim sFrom As String
    Dim sTo As String
    Dim sCC As String
    Dim sBCC As String
    Dim sBody As String
    Dim sFilePath1 As String
    Dim sFilePath2 As String
    Dim MailCDO
   
    sFrom = "abc@abccom"
    sCC = ""
    sBCC = ""
    sTo = "def@def.com"
 
    ' 分别定义两个附件的完整路径
    sFilePath1 = "E:\Reports\Report1.xlsx"
    sFilePath2 = "E:\Reports\Report2.xlsx"
 
    sSubject = "Subject"
    sBody = "<p>Email Body</p>"
 
    Set MailCDO = CreateObject("CDO.Message")
    ' SMTP配置部分保持不变
    MailCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    MailCDO.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
        = "smtp.xxxyyy.com"
    MailCDO.Configuration.Fields.Update
    
    MailCDO.Subject = sSubject
    MailCDO.From = sFrom
    MailCDO.To = sTo
    MailCDO.CC = sCC
    MailCDO.BCC = sBCC
    MailCDO.HTMLBody = sBody
    
    ' 多次调用AddAttachment分别添加多个附件
    MailCDO.AddAttachment sFilePath1
    MailCDO.AddAttachment sFilePath2
    
    MailCDO.Send
    Set MailCDO = Nothing
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:51:02