这是代码:
适用于一位收件人。
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列中 片。
这些值是动态的,它可能包含任意数量的邮件 的ID。
示例:
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列到最后一列 row并连接由分号(;)
分隔的所有值
答案 0 :(得分:1)
在收件人字段中尝试此操作:
.To = Join(xlApp.Transpose(xlSht.Range("A1", xlSht.Range("A9999").End(xlUp))), ";")