今天給大家聊一下如何用Excel自動發(fā)郵件。
坦白說,這事其實只需要一句VBA代碼。
比如,我要給郵箱”Excel@qq.com”發(fā)一封郵件,標(biāo)題是”你好啊看見星光”,同時將當(dāng)前工作簿作為附件一起發(fā)過去?
Sub SendMail_1()
ActiveWorkbook.SendMail "Excel@qq.com", "你好啊看見星光"
End Sub
你看,是不是只需要一句代碼?
代碼使用了SendMail,這是工作簿對象的方法,語法格式如下:
工作簿.SendMail(收件人,主題,是否返回收件人)
就仨參數(shù),第3參數(shù)還可以省略,只需要提供收件人和主題就可以了。不過需要注意的是它會將工作簿作為附件發(fā)送給收件人。
▎收件人是多人
有朋友可能會問,如果收件人是多人怎么辦呢?
將收件人地址修改為一維數(shù)組即可。
示例代碼如下:
Sub SendMail2() '發(fā)送多人
Dim aName, strTit As String
aName = Array("Excel@qq.com", "469772827@qq.com")
strTit = "你好啊看見星光"
ThisWorkbook.SendMail aName, strTit
End Sub
第3行代碼指定了兩個收件人。
▎發(fā)送部分工作表
上面的兩段代碼都是將整個工作簿作為附件發(fā)送出去,如果有朋友只需要發(fā)送工作簿中的部分工作表,可以參考以下代碼。
以下代碼將代碼所在工作簿中兩個名為”看見星光”和”老!钡墓ぷ鞅,組合成一個新工作簿,作為附件發(fā)送給多個收件人:
Sub SendMail3() '將指定工作表轉(zhuǎn)換為工作簿發(fā)送
Dim aName, aShtName, strTit As String
aName = Array("Excel@qq.com", "測試@qq.com")
strTit = "你好,這是測試郵件"
aShtName = Array("看見星光", "老祝")
Worksheets(aShtName).Copy
ActiveWorkbook.SendMail aName, strTit
ActiveWorkbook.Close False
End Sub
第5行代碼指定了兩個工作表名稱,第6行代碼使用工作表對象的Copy方法,將指定工作表集合轉(zhuǎn)換為單獨工作簿。
第7行代碼發(fā)送郵件,第8行代碼關(guān)閉并不保存當(dāng)前工作簿。
▎發(fā)送指定工作簿
我先說一句大實話,在我眼里,看到這里的朋友都是靚仔美女。攤手,那再提一個新問題,上述代碼是將代碼所在工作簿作為附件發(fā)送,如果是將發(fā)送指定工作簿作為附件怎么辦呢?
以下代碼可以將當(dāng)前工作簿同路徑下的一個名為”測試”的工作簿,作為附件,發(fā)送指定收件人。
Sub SendMail4() '發(fā)送指定路徑下工作簿
Dim aName, strPath As String, wk As Workbook, strTit As String
aName = Array("Excel@qq.com", "測試@qq.com")
strTit = "你好,這是測試郵件"
strPath = ThisWorkbook.Path & "/測試.xlsx"
Set wk = Workbooks.Open(strPath)
ActiveWorkbook.SendMail aName, strTit
ActiveWorkbook.Close False
End Sub
第5行代碼指定了目標(biāo)工作簿的完整路徑。第6行代碼使用工作簿的Open方法打開該工作簿。
第7行代碼發(fā)送郵件,操作對象是ActiveWorkbook,即當(dāng)前活動工作簿。第8行代碼關(guān)閉并不保存當(dāng)前工作簿。
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。