Excel 2013 VBA多个电子邮件地址到Outlook

时间:2017-07-07 20:50:01

标签: vba excel-vba email outlook excel-2013

我在Excel 2013中编码。我已经获得了一个客户数据表, 将随着时间的推移而增加和减少 ,具体取决于我的活跃资深案例:

A栏 - 姓氏
B栏 - 名字
C栏 - 电子邮件地址
D栏 - 等......

我需要代码来引用C列,并将所有电子邮件放在单个Outlook电子邮件的BCC中。我创建的代码(通过我的研究)只允许在Outlook的TO,CC或BCC字段中使用硬编码的电子邮件地址 - 在多个条目之间使用分号。我的问题是电子邮件地址的数量会根据电子表格中的记录数量而有所不同,因此对它们进行硬编码是没用的。下面的代码具有我需要的所有功能,但电子邮件问题除外。

Rolling_Max =MiscETFs_Data[['SPHB']].rolling(500, min_periods = 1).max()
Drawdown = MiscETFs_Data[['SPHB']].loc['2015':]/Rolling_Max.loc['2015':] - 1
Drawdown.plot(figsize = (20,10), kind = 'area')
plt.show()

2 个答案:

答案 0 :(得分:0)

代码将遍历工作表1的内容(只需更改为工作表(" whateveryoucalledyoursheet"))并保留单元格行。

Sub SendBasicEmail()
dim ws as worksheet, y
Dim olApp As Outlook.Application
Dim olEmail As Outlook.MailItem
set ws = sheets(1)
for each y in ws.range("A1:A" & ws.range("A1").SpecialCells(xlCellTypeLastCell).row)

Set olApp = New Outlook.Application
Set olEmail = olApp.CreateItem(olMailItem)
With olEmail
    .BodyFormat = olFormatHTML
    .Display
    .HTMLBody = "<h3>Testing</h3><br>" & "<br>" & .HTMLBody
    .Attachments.Add "xxx/test.pdf"
    .To = ws.range("A" & y.row)
    .BCC = ws.range("C" & y.row)
    .Subject = "Test Message"
    ' use display to check the email out before you send
    .display
    '.Send
End With
next y

end sub

答案 1 :(得分:0)

我只是循环遍历列并使字符串保持地址以分号分隔。

with