Жирные переменные в элементе электронной почты с помощью Excel Visual Basic

Это на самом деле моя первая публикация на этом сайте - я очень ценю всю помощь, которую я могу получить!

У меня есть лист Excel, содержащий

  • клиенты электронной почты,
  • их имя,
  • даты их проверки и
  • и их дата обработки.

Я хочу отправить им напоминание по электронной почте каждый день, если их дата обработки сегодня. Мне удалось написать код, но мне не удалось CheckDate элементы электронной почты (ProcessingDate, CheckDate и Time).

Еще раз спасибо!

Вот мой код:

Sub SendEm()
Dim i As Integer, Mail_Object, Email_Subject, o As Variant, lr As Long, MyDate As Date, Client As String, ProcessingDate As Date, CheckDate As Date, Time As Date, PayrollSpecialist As String
Dim Msg As Variant

lr = Sheets("DataSheet").Cells(Rows.Count, "S").End(xlUp).row
Set Mail_Object = CreateObject("Outlook.Application")
MyDate = Date
For i = 2 To lr
 Client = Sheets("DataSheet").Range("S" & i).Value
 ProcessingDate = Sheets("DataSheet").Range("B" & i).Value
 CheckDate = Sheets("DataSheet").Range("C" & i).Value
 Time = Sheets("DataSheet").Range("A" & i).Value
 PayrollSpecialist = Sheets("DataSheet").Range("D" & i).Value

 If Sheets("DataSheet").Range("B" & i).Value = MyDate Then
 Msg = "Dear" & " " & Client
 Msg = Msg & Sheets("Email").Range("B2").Value
 Msg = Msg & ProcessingDate & " "
 Msg = Msg & Sheets("Email").Range("B3").Value
 Msg = Msg & CheckDate
 Msg = Msg & ". " & Sheets("Email").Range("B4").Value & " "
 Msg = Msg & Time
 Msg = Msg & " " & Sheets("Email").Range("B5").Value & Sheets("Email").Range("B6").Value & vbNewLine & PayrollSpecialist
 With Mail_Object.CreateItem(o)
 .Subject = Sheets("Email").Range("A2").Value
 .To = Sheets("DataSheet").Range("T" & i).Value
 .Body = Msg
 '.Send
 .display 'disable display and enable send to send automatically
 End With
 End If
Next i
 MsgBox "E-mail successfully sent", 64
 Application.DisplayAlerts = False
 Set Mail_Object = Nothing
End Sub
1 ответ

Вы можете использовать

  1. .htmlBody а не .Body
  2. использовать html

Итак, смелый ProcessingDate

Msg = Msg & "<b>" & ProcessingDate & "</b> "

Например, с вашим кодом

Msg = "Dear" & " " & Client
 'Msg = Msg & Sheets("Email").Range("B2").Value
 Msg = Msg & "<b>" & ProcessingDate & "</b> "
 'Msg = Msg & Sheets("Email").Range("B3").Value
 Msg = Msg & CheckDate
 'Msg = Msg & ". " & Sheets("Email").Range("B4").Value & " "
 Msg = Msg & Time
 'Msg = Msg & " " & Sheets("Email").Range("B5").Value & Sheets("Email").Range("B6").Value & vbNewLine & PayrollSpecialist
 With Mail_Object.CreateItem(o)
 .Subject = "tested"
 .To = "[removed_email]"
 .htmlBody = Msg
 '.Send
 .display 'disable display and enable send to send automatically
 End With

licensed under cc by-sa 3.0 with attribution.