Excel用宏实现数据根据条件通过邮件发给指定的人

2025-03-23 02:51:13
推荐回答(3个)
回答1:

将制定的内容发送给制定的人 可通过for循环来写
设计思路是需要参考数据源
欢迎入群交流:192511936
发送的代码如下:
Dim mail As New CDO.Message
mail.From = "设置发信人的邮箱"
mail.To = "设置收信人的邮箱"
mail.Subject = "设定邮件的主题"
mail.AddAttachment "附件"
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址
With mail.Configuration.Fields
.Item(stUl & "smtpserver") = "smtp.163.com" 'SMTP服务器地址
.Item(stUl & "smtpserverport") = 25 'SMTP服务器端口
.Item(stUl & "sendusing") = 25 '发送端口
.Item(stUl & "smtpauthenticate") = 1 '需要提供用户名和密码,0是不提供 '
.Item(stUl & "sendusername") = "发信人的邮箱ID"
.Item(stUl & "sendpassword") = "密码"
.Update
End With
mail.Send '发送
Set mail = Nothing '释放对象

回答2:

算了。。。

回答3:

一、建立亲友通讯录
  在工作表中建立一个包含不同收件人、主题、内容和附件的亲友通讯录。
二、使用宏实现自动发送电子邮件
  打开“工具→宏→Visual Basic编辑器”,单击“插入→模块”插入一个模块,在“工程”窗口中双击插入的模块,打开它的代码窗口,并输入以下宏:
  Sub 全自动发送邮件()
  "要能正确发送并需要对Microseft Outlook进行有效配置
  On Error Resume Next
  Dim rowCount, endRowNo
  Dim objOutlook As New Outlook.Application
  Dim objMail As MailItem
  "取得当前工作表与Cells(1,1)相连的数据区行数
  endRowNo = Cells(1, 1).CurrentRegion.Rows.Count
  "创建objOutlook为Outlook应用程序对象
  Set objOutlook = New Outlook.Application
  "开始循环发送电子邮件
  For rowCount = 2 To endRowNo
  "创建objMail为一个邮件对象
  Set objMail = objOutlook.CreateItem(olMailItem)
  With objMail
  "设置收件人地址(从通讯录表的“E-mail地址”字段中获得)
  .To = Cells(rowCount, 2)
  "设置邮件主题
  .Subject ="新年好![来自朋友弗人的问候] "
  "设置邮件内容(从通讯录表的“内容”字段中获得)
  .Body = Cells(rowCount, 3)
  "设置附件(从通讯录表的“附件”字段中获得)
  .Attachments.Add Cells(rowCount, 4)
  "自动发送邮件
  .Send
  End With
  "销毁objMail对象
  Set objMail = Nothing
  Next
  "销毁objOutlook对象
  Set objOutlook = Nothing
  "所有电子邮件发送完成时提示
  MsgBox rowCount-1