宝佳网

宝佳网

Excel「Outlook篇」如何让Excel自动发邮件?

admin
Excel「Outlook篇」如何让Excel自动发邮件?Excel「Outlook篇」如何让Excel自动发邮件?-第1张-宠物相关-宝佳网

2.

整理了下伙伴们的问题,基本如下:

如何将代码修改成不添加附件发送?

如何将代码修改成抄送多个人?

如何将代码修改成添加不同的附件发送?

如何让Excel控制Lotus Notes发送邮件?

如何让Excel控制FoxMail发送邮件?

如何让Excel控制QQ邮箱发送邮件?

……

3.

这期我们先来回答前三个问题。

第1个问题,如何将代码修改成不添加附件发送?

介个问题,把我们上期的代码有关附件的部分删除掉就OK。更新后代码和模版文件可以点击【阅读原文】获取。

第2个问题,如何将代码修改成抄送多人?

……把抄送人的邮箱用半角分号间隔就可以了。

比如:

.CC = "test123@163.com;test124@163.com;test124@163.com"

第3个问题,如何将代码修改成添加不同的附件发送?

介个问题,可以先用Dir函数判断相关文件是否存在,如果存在则添加到邮件中……包含代码的文件链接:

https://pan.baidu.com/s/1Kj3FlG0VPivMukrfvc_t-w

小贴士:

本期示例代码是根据人名匹配并添加附件,例如给员工崔冰冰发送邮件,则添加代码所在工作簿的文件夹下 名称为崔冰冰 的文件。

Excel「Outlook篇」如何让Excel自动发邮件?-第2张-宠物相关-宝佳网

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@gmail.com"

'------------抄送人

.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