求助代码:如何利用excel自动发送邮件
有没有大神知道怎么写代码,可以设计一个宏,然后把所有文件存在一个文件夹里,再创建一个宏,只要一点,文件夹里的文件就可以各自通过文件名发送到对应的邮箱地址去。比如文件夹里有abc三个文件,如何设计代码,只要一点这个宏,文件夹名字为a的文件就可以发送到A邮箱,b邮件就可以发送到B邮箱,c邮件就可以发送到C邮箱?
方式二,'使用CDO发送邮件 (不依赖于OutLook)
再结合你的情况,无非是用FSO先取得某文件夹下所有文件名,遍历对象,再调用子程序发送邮件,
参考代码(个别地方需要你自己改一下):
程序代码:Sub MakeNewEmailByVBA1()
'调用OutLook生成并发送新邮件,邮件正文为html格式,附件有要求.
'假定OutLook中的帐户已经配置好,可以正常发送邮件.
' 2021-4-25调试通过.
Dim oOutLookObject As Object 'New Outlook.Application
Dim oEmailItem As Object
Set oOutLookObject = CreateObject("Outlook.Application")
Set oEmailItem = oOutLookObject.CreateItem(0) '枚举值如下: ' 0=olMailItem ,
'1=appointmentItem 2=ContactItem,3=TaskItem,4=JournalItem,5=NoteItem,6=PostItem,7=DistListItem
Dim nr As String
Dim fso As Object
Dim txtfile As Object
Set fso = CreateObject("scripting.filesystemobject")
Set txtfile = fso.OpenTextFile("c:\cHtml.htm")
'nr = txtfile.ReadLine '读取一行
'nr = txtfile.ReadAll
With oEmailItem
.Recipients.Add ("杨斗") '这是OutLook地址簿中的名字,假定有这个名字
.Subject = "邮件标题:这是您分公司的网上划款或电汇数据2-6!"
.Importance = IMPORTANCENORMAL
.BodyFormat = 2 '枚举值如下:
'0=olFormatUnspecified (实际上不行,会报错) ;1=olFormatPlain ;2=olFormatHTML ;3=olFormatRichText
.HTMLBody = txtfile.ReadAll '还有RTFBody,Body这些属性,与BodyFormat属性配合使用.
'上句是邮件正文以Html格式显示,如果以纯文本显示,可以不设置HTMLBody属性,直接设置Body属性.
.Attachments.Add ("c:\简报_.xlsx") '邮件附件.
.Send
End With
txtfile.Close
Set txtfile = Nothing
Set fso = Nothing
Set oEmailItem = Nothing
oOutLookObject.Quit
Set oOutLookObject = Nothing
End Sub







