[英]VBA code to send personalized email from excel
我想要一個代碼,該代碼將使用excel表作為源發送電子郵件。 電子郵件地址在表中,但是它們是重復的。
我找到了為每行/每一行生成並發送電子郵件的代碼,但是我需要它為包含相同電子郵件地址的多行生成一封電子郵件。
請! 修改代碼,使其從包含相同電子郵件地址的多行中僅生成1封電子郵件。
*我會自己做,但是我不知道怎么做,因為我不知道如何在VBA中編碼。
我到目前為止的代碼是,它為每一行生成電子郵件,這不是我想要的:
Sub email()
Dim i As Long
Dim OutApp, OutMail As Object
Dim strto, strcc, strbcc, strsub, strbody As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
For i = 1 To Range("c65536").End(xlUp).Row
Set OutMail = OutApp.CreateItem(0)
strto = Cells(i, 8)
strsub = "Missing Books"
strbody = "Good day," & vbNewLine & _
"We are missing below books:" & vbNewLine & _
Cells(i, 1) & Chr(32) & Cells(i, 2) & Cells(i, 3) & Cells(i, 5) & Cells(i, 6) & vbNewLine & vbNewLine & _
"brgds," & vbNewLine & _
"Alex"
With OutMail
.To = strto
.Subject = strsub
.Body = strbody
'.Send
.display
End With
On Error Resume Next
Next
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
電子郵件地址的最終電子郵件應如下所示:
到:test@email.com
主題:報告!
你好!以下是所用服務的概述:
期間/編號/公司/計數/期限* 標題行
201504/900654 / ETV / 5/89 / * 數據行,在H列中包含電子郵件
201504/900098 / ETV / 2/24 / * 數據行,在H列中包含電子郵件祝福安努
注意:第一行是標題行,第二行是數據單元格。 它們來自表格,電子郵件也來自表格
注意:H是電子郵件的列-可以有10次/行test@email.com,它只需要1封電子郵件,但其信息位於電子郵件單元格本身之前。
編輯* 這是表格
請參見下面的內容,使每行中的每一行組成一個字符串,代碼將忽略重復的數據,然后可以在mailto變量中使用該字符串:
Sub uniqueSTR()
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Dim mailSTR As String
Set wb = ActiveWorkbook 'Your workbook
Set ws = wb.Sheets("Sheet2") 'Your sheet name
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To lastRow
If InStr(mailSTR, Range("A" & i).Value) = 0 Then
If mailSTR = "" Then
mailSTR = Range("A" & i).Value
Else
mailSTR = mailSTR & ";" & Range("A" & i).Value '<- Mail seperator is ";"
End If
End If
Next
Range("B1").Value = mailSTR '<- Your result
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.