在朋友那兒聽說 知心的你曾找過我 我要他幫我對你隐瞞 隻是怕見了面會更難過……
1.
大家好,我是星光。上期咱們推送了如何讓Excel控制OUTLOOK自動發郵件;連結:如何通過Excel控制outlook自動批量發送郵件?
之後有很多小夥伴提出各種問題……這讓星光俺深刻的意識到……Excel和郵件這倆壞銀的關系金不一般啊。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZ4cTMiFjMwYDN0MTMlFWNmFWYiBTO2QDMzMWOlJTMk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.
整理了下夥伴們的問題,基本如下:
如何将代碼修改成不添加附件發送?
如何将代碼修改成抄送多個人?
如何将代碼修改成添加不同的附件發送?
……
……
第1個問題,如何将代碼修改成不添加附件發送?
介個問題,把我們上期的代碼有關附件的部分删除掉就OK。更新後代碼和模版檔案可以點選【閱讀原文】擷取。
第2個問題,如何将代碼修改成抄送多人?
……把抄送人的郵箱用半角分号間隔就可以了。
比如:
.CC = "[email protected];[email protected];[email protected]"
第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 = "[email protected]" '------------抄送人 .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
代碼解析見注釋。
如果你還不懂得如何運作VBA代碼,可以參考:如何運作VBA代碼?其實很簡單!
更多資源和教程
- 零基礎學SQL in Excel 25篇合集
- VBA愛好者請進,VBA代碼寶概述
©EH看見星光
《VBA經典代碼應用大全》 當當、天貓、京東均有銷售~