北京白癜风医院那家好 https://disease.39.net/bjzkbdfyy/241012/v2tv6e5.html如果你每天都要做报表,发给固定的收件人,你想不想只点一个按钮、立即将报表作为附件发送出去?只要你学过Excel的VBA编程,这是一件很简单的事情。
首先在报表中创建一个“邮件地址”表(当然其他名称也可以,在程序中引用这个名称即可)。收件人地址从B2开始往下加,抄送人地址从D2开始往下,密送收件人地址从F2开始往下加,G2填写主题,H2填写正文。A列、C列、E列可以填上对应的收件人姓名,但不是必须的。
密送收件人放在这里只是说明程序的使用方法,失去了密送的意义。这个收件人表也可以不需要,改为在代码中维护收件人,这是更接近实际的做法。一般初学者可以在收件人表中维护收件人信息。
收件人抄送人加密收件人主题正文单元格
发送电子邮件代码如下:
PublicSub发送电子邮件()
DimOutlookAppAsOutlook.Application
DimnewMailAsOutlook.mailitem
DimmyAttachmentsAsOutlook.Attachments
DimnAsInteger,iAsInteger
DimwsAsWorksheet
OnErrorResumeNext
Setws=Worksheets("邮件地址")
n=ws.Range("B").End(xlUp).Row
address=Worksheets("邮件地址").Cells(2,2)
Fori=2Ton
IfinThen
address=address";"Worksheets("邮件地址").Cells(i+1,2)
EndIf
Nexti
CC
n=ws.Range("D").End(xlUp).Row
addressCC=Worksheets("邮件地址").Cells(2,4)
Fori=2Ton
IfinThen
addressCC=addressCC";"Worksheets("邮件地址").Cells(i+1,4)
EndIf
Nexti
BCC
n=ws.Range("F").End(xlUp).Row
addressBCC=Worksheets("邮件地址").Cells(2,6)
Fori=2Ton
IfinThen
addressBCC=addressBCC";"Worksheets("邮件地址").Cells(i+1,6)
EndIf
Nexti
SetOutlookApp=NewOutlook.Application
wbStr=ThisWorkbook.FullName指定要发送发工作簿名称字符串
SetnewMail=OutlookApp.CreateItem(olMailItem)创建新邮件
WithnewMail
.Subject=Worksheets("邮件地址").Cells(2,7)设置邮件主题
.Body=Worksheets("邮件地址").Cells(2,8)设置邮件正文
发送附件
SetmyAttachments=newMail.Attachments
myAttachments.AddwbStr,olByValue,1,"工作簿"
.To=address收件人
.CC=addressCC抄送
.BCC=addressBCC密送
.Send开始发送
EndWith
EndSub
请注意,要在Outlook中设置允许编程访问,具体如何设置请看我的另一篇文章“如何用Excel实现办公自动化”。否则会弹出如下对话框要你选择:
Outlook弹出的对话框
最后,添加一个加载项菜单中的按钮,链接到你编写的程序模块。点击一下按钮,即可运行程序,把你这个报表作为附件发给相关收件人。以后要发出邮件,只要点击这个按钮就可以了。