|
请参考
https://club.excelhome.net/thread-612843-1-1.html?_dsign=a0228e3f
问题38:如何从Excel中发送E-Mail?
解答:在ExcelVBA中可以发送电子邮件,甚至可以将工作簿作为附件。
SendMail方法
SendMail方法很容易使用且将任何指定的Excel工作簿作为附件发送给特定的客户端,将下面的代码存放在Personal.xls工作簿中:
Sub SendActiveWorkbook()
ActiveWorkbook.SendMail _
Recipients:="xhdsxfjy@163.com", _
Subject:="试一试" & Format(Date, "dd/mmm/yy")
End Sub
如果仅想发送工作簿中的一个工作表,则可以使用下面的代码。该代码创建一个包含该工作表的一个新工作簿,然后将它作为附件发送,最后不保存而关闭该工作簿。
Sub Send1Sheet_ActiveWorkbook()
'创建一个包含一个工作表的新工作簿作为电子邮件的附件
ThisWorkbook.Sheets(1).Copy
With ActiveWorkbook
.SendMailRecipients:="xhdsxfjy@163.com", _
Subject:="试一试" & Format(Date, "dd/mmm/yy")
.CloseSaveChanges:=False
End With
End Sub
Route方法
Route方法可以指定许多客户端,使工作簿按规定路线一个接一个发送给收件人。在发送时,文本自动添加到email的主体中。可以从Excel的“文件”菜单中选择“发送”命令,然后选择“传送收件人”,再选择下一个传送的客户端。
下面的代码将首先传送给xhdsxfjy@163.com,接着转到Excel菜单“文件>>发送>>下一个传送收件人”,工作簿将自动传送到下一个客户fan_jinyong@hotmail.com。
Sub RouteActiveWorkbook()
WithActiveWorkbook
.HasRoutingSlip = True
With .RoutingSlip
.Delivery = xlOneAfterAnother
.Recipients = Array("xhdsxfjy@163.com", _
"fan_jinyong@hotmail.com","exceltrainer2003@yahoo.com.cn")
.Subject = "请检查"
.Message = "请填写工作簿并发送."
End With
.Route
EndWith
End Sub
|
|