【发布时间】:2020-06-23 15:37:28
【问题描述】:
这是代码:
它适用于一个收件人。
Sub Sendmail()
Dim olItem As outlook.MailItem
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSht As Excel.Worksheet
Dim sPath As String
Dim iRow As Long
sPath = "***"
' // Excel
Set xlApp = CreateObject("Excel.Application")
' // Workbook
Set xlBook = xlApp.Workbooks.Open(sPath)
' // Sheet
Set xlSht = xlBook.Sheets("Sheet1")
' // Create e-mail Item
Set olItem = Application.CreateItem(olMailItem)
With olItem
.To = xlSht.Range("A1")
.CC = xlSht.Range("c1")
.subject = "test"
.Display
.Send
End With
' // Close
xlBook.Close SaveChanges:=True
' // Quit
xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSht = Nothing
Set olItem = Nothing
End Sub
查询:根据我的要求,应采用收件人姓名 来自链接的 Excel 工作表。
所有收件人的邮件地址放在 Excel 的 A 列 床单。
而且这些值是动态的,它可能包含任意数量的邮件 身份证。
例子:
A 列:
yhui@gmail.com abc@gmail.com ikj@gmail.com plo@gmail.com
这里有4个值,现在邮件应该发给这4个 同时接收人。
所以 To 字段应该包含: yhui@gmail.com;abc@gmail.com;ikj@gmail.com;plo@gmail.com
代码应该能够向下遍历 A 列直到最后 行并连接用分号 (;) 分隔的所有值
【问题讨论】:
-
使用
For循环。 -
谢谢,使用for循环邮件可以一次发送给一个收件人。