2017-07-07 126 views
0

我在Excel 2013編碼我已經得到了客戶數據的表會增加,在數量上隨着時間的推移減少取決於我的積極老將案例:的Excel 2013 VBA多個電子郵件地址到Outlook

A列 - 姓氏
B列 - 名字
C列 - 電子郵件地址
列d - 等等......

我需要的代碼來引用C列,並在其中放置所有郵件在BC C的一個Outlook電子郵件。我創建的代碼(通過我的研究)只允許在Outlook的TO,CC或BCC字段中使用硬編碼的電子郵件地址 - 在多個條目之間使用分號。我的問題是,電子郵件地址的數量會因電子表格中的記錄數量而異,因此對它們進行硬編碼是沒有用的。下面的代碼具有我需要的所有功能,但電子郵件問題除外。

Sub SendBasicEmail() 
Dim olApp As Outlook.Application 
Dim olEmail As Outlook.MailItem 
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 = "" 
    .BCC = "" 
    .Subject = "Test Message" 
    '.Send 
End With 
End Sub 

回答

0

我只是在列上循環,並使字符串持有由分號分隔的地址。

Sub SendBasicEmail() 
Dim olApp As Outlook.Application 
Dim olEmail As Outlook.MailItem 
Set olApp = New Outlook.Application 
Set olEmail = olApp.CreateItem(olMailItem) 

'set your range as needed, i chose one named "recipients" 
bc_r = "" 
For each cl in range("recipients") 
    bc_r = bc_r & "; " & cl.Value 
Next cl 

With olEmail 
    .BodyFormat = olFormatHTML 
    .Display 
    .HTMLBody = "<h3>Testing</h3><br>" & "<br>" & .HTMLBody 
    .Attachments.Add "xxx/test.pdf" 
    .To = "" 
    .BCC = bc_r 
    .Subject = "Test Message" 
    '.Send 
End With 
End Sub 
+0

經過測試,完全符合我的需求。非常感謝您的幫助。希望我可以投你一票,但這是我第一次發佈Stack Overflow。 – Agnew

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 
相關問題