求助代码:如何利用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