Настройка макроса так, чтобы электронное письмо отправлялось, когда ячейка в строке N = yes, а ячейка в строке J пуста.Если оба эти требования выполнены, электронное письмо отправляется, а затем дата вставляется в строку J (что предотвращает повторный запуск макроса в этой строке).
Приведенный ниже код запускает макрос, даже если есть датав ряду J, и я не знаю почему.
(я начинающий)
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup
For Each cell In Columns("H").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" And _
LCase(Cells(cell.Row, "N").Value) = "yes" _
And LCase(Cells(cell.Row, "J").Value) <> Format(Date, "dd/mm/yyyy") Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "Review - " & Cells(cell.Row, "C").Value
.HTMLBody = "<HTML><BODY>Greetings, <br />" & _
"<br />" & _
"I hope this email finds you well. <br />" & _
"<br />" & _
"We need your review back by " & DateAdd("ww", 3, Date) & ", as we are keen to forward on feedback. <br />" & _
"<br />" & _
"Kind regards,</BODY></HTML>"
.Send
End With
On Error GoTo 0
Cells(cell.Row, "J").Value = Format(Date, "dd/mm/yyyy")
Set OutMail = Nothing
End If
Next cell
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub