2015-05-28 6 views
0

Добрый день Приведенный ниже код создает уникальную электронную почту + вложение в каждую строку в столбце A на основе других столбцов.Отправка электронной почты из шаблона OFT с использованием excel vba

Это означает, что если одно и то же письмо существует более одного раза, они получат более одного электронного письма. То, что я хотел бы сделать, это проверить, существует ли почта в более чем одной строке (уже отсортирована) и отправлять только одно электронное письмо (со всеми вложениями). Это возможно?

это мой код:

Dim objOutlook As Outlook.Application 
Dim objMail As Outlook.MailItem 

Dim rngTo As Range 
Dim rngSubject As Range 
Dim rngBody As Range 
Dim rngAttach As Range 

ActiveSheet.Range("A2").Select 

Do Until IsEmpty(ActiveCell) 

    Set objOutlook = CreateObject("Outlook.Application") 
    Set objMail = objOutlook.CreateItemFromTemplate("C:\Desktop\EBILL\template.oft") 
    With objMail 
    .To = ActiveCell.Offset(0, 4).Value 
    .Subject = "Invoice For: " & " " & Month & " - " & Year 
    .Attachments.Add ActiveCell.Offset(0, 5).Value 
    ActiveCell.Offset(1, 0).Select 
    .Display 'Instead of .Display, you can use .Send to send the email or .Save to save a copy in the drafts folder 
    End With 

Loop 


    Set objOutlook = Nothing 
    Set objMail = Nothing 
    Set rngTo = Nothing 
    Set rngSubject = Nothing 
    Set rngBody = Nothing 
    Set rngAttach = Nothing 
+0

все адрес электронной почты в поле A2? – 0m3r

+0

Все электронные письма являются результатом vlookup, перечисляемого в столбце (E). поэтому в основном у меня будет, например, 5 пользователей, 3 из которых уникальны и 1 с 2 записями. Это в основном используется для отправки счетов клиентам. – Nadz

ответ

0

Найдено рабочий ответ. Надеюсь, это может помочь кому-то с аналогичной ситуацией.

With objMail 
.To = ActiveCell.Offset(0, 4).Value 
.Subject = "Invoice For: " & " " & Month & " - " & Year 
.Attachments.Add ActiveCell.Offset(0, 5).Value 
ActiveCell.Offset(1, 0).Select 

Do Until ActiveCell.Offset(0, 4).Value <> .To 
    .Attachments.Add ActiveCell.Offset(0, 5).Value 
    ActiveCell.Offset(1, 0).Select 
Loop 
.Display 'Instead of .Display, you can use .Send to send the email or .Save to save a copy in the drafts folder 
End With 
Смежные вопросы