在朋友那儿听说 知心的你曾找过我 我要他帮我对你隐瞒 只是怕见了面会更难过……
1.
大家好,我是星光。上期咱们推送了如何让Excel控制OUTLOOK自动发邮件;链接:如何通过Excel控制outlook自动批量发送邮件?
之后有很多小伙伴提出各种问题……这让星光俺深刻的意识到……Excel和邮件这俩坏银的关系金不一般啊。

2.
整理了下伙伴们的问题,基本如下:
如何将代码修改成不添加附件发送?
如何将代码修改成抄送多个人?
如何将代码修改成添加不同的附件发送?
……
……
第1个问题,如何将代码修改成不添加附件发送?
介个问题,把我们上期的代码有关附件的部分删除掉就OK。更新后代码和模版文件可以点击【阅读原文】获取。
第2个问题,如何将代码修改成抄送多人?
……把抄送人的邮箱用半角分号间隔就可以了。
比如:
.CC = "test123@;test124@;test124@"
第3个问题,如何将代码修改成添加不同的附件发送?
介个问题,可以先用Dir函数判断相关文件是否存在,如果存在则添加到邮件中……
小贴士:
本期示例代码是根据人名匹配并添加附件,例如给员工崔冰冰发送邮件,则添加代码所在工作簿的文件夹下 名称为崔冰冰 的文件。

Sub SendMailEnvelope_2() '带不同附件 Dim avntWage As Variant Dim i As Long Dim strText As String Dim objAttach As Object Dim strFldPath As String Dim strFileName As String With Application .ScreenUpdating = False .EnableEvents = False End With strFldPath = ThisWorkbook.Path & "\" '------------附件存放的文件夹路径,本例是代码所在工作簿的同一文件夹下 avntWage = Sheets("工资表").[a1].CurrentRegion '------------工资表的数据装入数组 For i = 2 To UBound(avntWage) [a2:i2] = Application.Index(avntWage, i) '------------工资条信息放入a2:i2区域 [b1:i2].Select '------------选中b1:i2作为邮件正文的表格内容 ActiveWorkbook.EnvelopeVisible = True '------------MailEnvelope可见 With ActiveSheet.MailEnvelope strText = avntWage(i, 2) & "您好:" & vbCrLf & "以下是您" & _ avntWage(i, 3) & "月份工资明细,请查收!" .Introduction = strText '------------邮件正文内容 With .Item .To = avntWage(i, 1) '------------收件人 .CC = "treasurer@" '------------抄送人 .Subject = avntWage(i, 3) & "月份工资明细" '------------主题 Set objAttach = .Attachments Do While objAttach.Count > 0 '------------Do While语句删除可能存在的旧附件 objAttach.Remove 1 Loop strFileName = Dir(strFldPath & avntWage(i, 2) & "*.*") If strFileName > "" Then .Attachments.Add strFldPath & strFileName '------------如果存在指定名称的附件,则添加新附件 End If .send '------------发送邮件 End With End With Next i ActiveWorkbook.EnvelopeVisible = False With Application .ScreenUpdating = True .EnableEvents = True End With Set objAttach = NothingEnd Sub
















