Excel教程下載和軟件下載中心,Microsoft技術社區聯盟成員,全球極具影響力的Excel門戶,Office技術培訓社區

[Excel VBA]讓Excel自動批量發郵件

2019-01-06  作者:ExcelHome  閱讀:
如何讓Excel自動發送郵件?
比如說,使用outlook批量發送工資條,并且把指定單元格區域作為表格粘貼在郵件正文內……嗯,還得增加一個《關于企業調整職工工資的通知.docx》的附件。
發送后的郵件像下圖醬紫的。

2.
首先,得有安裝并注冊過outlook軟件。
然后,咱們得有一份工資表。發工資條嘛,沒工資表發個大頭鬼啊。示例工資表如下圖所示。其中A列是郵箱。

再然后,在該工作簿內新建一張工作表。設定并美化下工資條。比如下圖的模樣。

3.
最后,復制以下代碼,激活工資條所在的工作表后運行代碼就可以批量發送郵件了。
Sub SendMailEnvelope()
Dim avntWage As Variant
Dim i As Long
Dim strText As String
Dim objAttach As Object
Dim strPath As String
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
strPath = ThisWorkbook.Path & "關于企業調整職工工資的通知.docx"
'------------郵件發送附件的路徑
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 = "[email protected]"
'------------抄送人
.Subject = avntWage(i, 3) & "月份工資明細"
'------------主題
Set objAttach = .Attachments
Do While objAttach.Count > 0
'------------Do While語句刪除可能存在的舊附件
objAttach.Remove 1
MsgBox objAttach.Count
Loop
.Attachments.Add strPath
'------------添加新附件
.send
'------------發送郵件
End With
End With
Next i
ActiveWorkbook.EnvelopeVisible = False
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Set objAttach = Nothing
End Sub

轉載請注明來源"ExcelHome"并保留原文鏈接。
固定鏈接:http://www.fvtgnn.tw/lesson/article/excel/1929.html
分享到:
Copyright 1999 - 2017 Excel Home.All Rights Reserved.
本站特聘法律顧問:徐懷玉律師 李志群律師   滬ICP備11019229號

滬公網安備 31011702000001號

征信       
35选7摇奖器