http://www.pptjcw.com

excel宏教程:写一句VBA代码,让Excel自动发邮件~

    嗨,大家好,我是星光。
    今天给大家聊一下如何用Excel自动发邮件。

    坦白说,这事其实只需要一句VBA代码。
    比如,我要给邮箱”Excel@qq.com”发一封邮件,标题是”你好啊看见星光”,同时将当前工作簿作为附件一起发过去?

    Sub SendMail_1()
    ActiveWorkbook.SendMail "Excel@qq.com", "你好啊看见星光"
    End Sub

    你看,是不是只需要一句代码?
    代码使用了SendMail,这是工作簿对象的方法,语法格式如下:
    工作簿.SendMail(收件人,主题,是否返回收件人)
    就仨参数,第3参数还可以省略,只需要提供收件人和主题就可以了。不过需要注意的是它会将工作簿作为附件发送给收件人。

    ▎收件人是多人

    有朋友可能会问,如果收件人是多人怎么办呢?
    将收件人地址修改为一维数组即可。

    示例代码如下:

    Sub SendMail2() '发送多人
    Dim aName, strTit As String
    aName = Array("Excel@qq.com", "469772827@qq.com")
    strTit = "你好啊看见星光"
    ThisWorkbook.SendMail aName, strTit
    End Sub

    第3行代码指定了两个收件人。

    ▎发送部分工作表

    上面的两段代码都是将整个工作簿作为附件发送出去,如果有朋友只需要发送工作簿中的部分工作表,可以参考以下代码。
    以下代码将代码所在工作簿中两个名为”看见星光”和”老祝”的工作表,组合成一个新工作簿,作为附件发送给多个收件人:

    Sub SendMail3() '将指定工作表转换为工作簿发送
    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方法,将指定工作表集合转换为单独工作簿。
    第7行代码发送邮件,第8行代码关闭并不保存当前工作簿。

    ▎发送指定工作簿

    我先说一句大实话,在我眼里,看到这里的朋友都是靓仔美女。摊手,那再提一个新问题,上述代码是将代码所在工作簿作为附件发送,如果是将发送指定工作簿作为附件怎么办呢?

    以下代码可以将当前工作簿同路径下的一个名为”测试”的工作簿,作为附件,发送指定收件人。

    Sub SendMail4() '发送指定路径下工作簿
    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行代码指定了目标工作簿的完整路径。第6行代码使用工作簿的Open方法打开该工作簿。
    第7行代码发送邮件,操作对象是ActiveWorkbook,即当前活动工作簿。第8行代码关闭并不保存当前工作簿。

    ……

    最后,我再说一句大实话,使用以上代码时务必先打开并登陆Outlook邮箱,不然你凭啥发邮件图片就凭身材好结实?脸蛋美嘟嘟?家里有钱不够花?——那不成呀。

    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:表格制作excel教程:COUNTIFS函数基础应用 下一篇:excel表格制作:如何按指定名称和模板批量创建Excel工作簿?

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读