Существует ли более эффективный способ отправки напоминаний по электронной почте пользователю на основе часто меняющихся значений ячеек? Вот код того, над чем я работаю, чтобы вы, ребята, могли понять контекст вопроса.
'This is the main function
Sub notify()
Dim rng As Range
For Each rng In Range("F3:F14")
If (rng.Value = 1) Then
Call mymacro
End If
Next rng
End Sub
-----------------------------------------------------------------------
'This is the function that sends an email when called by the main function
Private Sub mymacro()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = "email address"
.CC = ""
.BCC = ""
.Subject = "test succeeded"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Объяснение:
Оба приведенных выше кода находятся в одном модуле моего листа. Код работал абсолютно нормально, чтобы отправить электронное письмо (через Outlook) пользователю. Например, если F3 и F7 оцениваются как true, пользователю будет отправлено два электронных письма.
Теперь возникает проблема: как я могу отредактировать свой код, чтобы в случае возникновения одинаковой ситуации (F3 и F7 оцениваются как true), два электронных письма, отправленные пользователю, будут указывать, какая ячейка оценивается как true. Другими словами, каждое отправленное электронное письмо будет отличаться, указав, какая конкретная ячейка была оценена как истинная.
Кроме того, сможет ли код быть перезапущен, если данные внутри ячейки ("F3:F14") обновлены?
Лично у меня нет опыта работы с VBA, поэтому было бы неплохо, если бы вы, ребята, могли объяснить это в терминах непрофессионала. Спасибо! Действительно ценю это! :)