之后有很多小伙伴提出各种问题……这让星光俺深刻的意识到……Excel和邮件这俩坏银的关系金不一般啊,好像系时候曝光一个系列了。
2.
整理了下伙伴们的问题,基本如下:
如何将代码修改成不添加附件发送?
如何将代码修改成抄送多个人?
如何将代码修改成添加不同的附件发送?
如何让Excel控制Lotus Notes发送邮件?
如何让Excel控制FoxMail发送邮件?
如何让Excel控制QQ邮箱发送邮件?
……
3.
这期我们先来回答前三个问题。
第1个问题,如何将代码修改成不添加附件发送?
介个问题,把我们上期的代码有关附件的部分删除掉就OK。更新后代码和模版文件可以点击【阅读原文】获取。
第2个问题,如何将代码修改成抄送多人?
……把抄送人的邮箱用半角分号间隔就可以了。
比如:
第3个问题,如何将代码修改成添加不同的附件发送?
介个问题,可以先用Dir函数判断相关文件是否存在,如果存在则添加到邮件中……包含代码的文件链接:
https://pan.baidu.com/s/1Kj3FlG0VPivMukrfvc_t-w
小贴士:
本期示例代码是根据人名匹配并添加附件,例如给员工崔冰冰发送邮件,则添加代码所在工作簿的文件夹下 名称为崔冰冰 的文件。
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)
‘————收件人
‘————抄送人
.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 = Nothing
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。