Вы должны проверить, существуют ли файлы вложений.Смотрите этот ответ .Затем вы можете решить, отправлять или не отправлять электронные письма.
Вот как должен выглядеть ваш код (только цикл Do
, вам нужно сохранить код до и после цикла без изменений).Я добавил оператор if, который пропускает строки, в которых не существует обоих файлов вложений, или, что то же самое, отправляет электронное письмо, если существует одно или оба вложения.Я не проверял этот код.Если он не запускается, дайте мне знать.
Do Until IsEmpty(Sht.Cells(iRow, 1))
Recip = Sht.Cells(iRow, 1).Value 'Email addresses
Subject = Sht.Cells(iRow, 2).Value 'Subject of the email, like "UK_Vendor name_Operations Scorecard"
Atmt = Sht.Cells(iRow, 3).Value 'PDF attachment path
Atmt2 = Sht.Cells(iRow, 4).Value 'Excel attachment path
If Dir(Atmt) <> "" Or Dir(Atmt2) <> "" Then
Set olMail = olApp.CreateItem(0)
With olMail
Set olRecip = .Recipients.Add(Recip)
.Subject = Subject
.Body = Sht.Cells.Range("J2") 'Blurb to be added in the body of the emails
.Display
Set olAtmt = .Attachments.Add(Atmt)
Set olAtmt2 = .Attachments.Add(Atmt2)
olRecip.Resolve
.Send
End With
End If
On Error Resume Next
iRow = iRow + 1
Loop