Я пытаюсь закодировать макрос VBA в Excel, который проверит столбец, чтобы проверить, присутствует ли «Нет».В этом случае предварительно отформатированное электронное письмо в формате HTML будет создано для .Send
.Это относительно просто для меня, но когда это становится трудным, это ссылаться на информацию о ячейке в теле HTML, а также ссылаться на несколько листов, сначала просматривая строку текста (Имя) в строке «Нет» на рабочем листе 1, находя соответствующийтекст на листе 2, а затем потянув ячейку электронной почты в соответствующей строке.Затем я хочу изменить ячейку «Нет» на «Да» после отправки электронного письма.Мой нормальный код электронной почты совсем не похож на то, что мне нужно для этого!Это то, что я обычно использую и понимаю:
Sub Email_Send()
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim sendTo As String
sendTo = ""
Dim sendCC As String
sendCC = ""
Dim sendBCC As String
sendBCC = ""
Dim emailCell As Range
With ActiveSheet
For Each emailCell In .Range("F3", .Range("F3").End(xlDown))
If .Cells(emailCell.Row, "D").Text = "No" Then
sendTo = sendTo & "; " & emailCell.Text
End If
Next emailCell
End With
On Error Resume Next
With OutMail
.To = sendTo
.CC = sendCC
.BCC = sendBCC
.Subject = "URGENT: COMPANY FIRST DAY UPDATE"
.BodyFormat = olFormatHTML
`If the recipient is on row 546
.HTMLbody = "<p>Good Afternoon (Row 546 Name)</p><p>Your start date shall be (Row 546 Start Date). Your manager will be (Row 546 Manager Name). You will work the (Row 546 Shift Time) shift.</p><p>Thank you for your time</p>"
.Display
End With
On Error GoTo 0
End Sub
Я знаю, что команды If
нужно будет настроить для вызова различных рабочих таблиц, но я совершенно не понимаю, как это будет возможно.Это выполнимо, или сценарии HTML / VBA вызовут синтаксическую ошибку, если она переплетена?Кроме того, если бы кто-нибудь мог помочь с логикой для этого, я был бы признателен.Я не использовал VBA несколько раз и мог бы помочь в объяснении логики процесса обучения!