如何修改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
相关产品推荐
相关产品推荐

