Добавьте адрес электронной почты в сообщение электронной почты Outlook, если значение ячейки равно 1
Я пытаюсь получить помощь в отправке сообщения электронной почты любому, у кого есть «1» в столбце E. У меня есть рабочий лист с рядом сотрудников и их номера телефонов. После их телефонных номеров – список событий, о которых они хотят получить уведомление. Если я поместил 1 в один из столбцов после их имени, я бы хотел, чтобы их адрес электронной почты был добавлен в электронное письмо.
Заголовки столбцов будут такими, как A = Last Name, B = Имя, C = Номер телефона, D = Адрес электронной почты, E = Событие 1, F = Событие 2, G = событие 3 и т. Д.
Я смог получить код электронной почты, чтобы вытащить все адреса электронной почты из заданного диапазона, но я не могу понять, как добавить команду if для поиска заданного значения в одном из столбцов событий (E, F, G .. .). Ему нужно было бы пройти весь диапазон, а затем вытащить адрес только для выбранных лиц, у которых заданное значение было в одном из столбцов событий.
- Не удалось получить Excel для создания электронной почты
- Ошибка отправки электронной почты (gmail) через python с вложением excel xlsx
- выберите, на какую учетную запись отправить адрес электронной почты Outlook?
- Отправить автоматические письма от Excel с конвертом
- Экспорт данных электронной почты Automail в Excel и обратно
Вот мой код:
Dim OutApp As Object Dim OutMail As Object Dim strto As String, strcc As String, strbcc As String Dim strsub As String, strbody As String Dim emailRng As Range, cl As Range Dim sTo As String Set emailRng = Worksheets("Sheet1").Range("D1:D500") For Each cl In emailRng sTo = sTo & ";" & cl.Value Next sTo = Mid(sTo, 2) Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) strto = sTo strcc = "" strbcc = "" strsub = "'NOTIFICATION' - " & "Notification" strbody = "<img src=Z:\Logo2.jpg width=624 height=74>" & _ "<font size=2 font face=Verdana color=black>" & "<br>" & _ "The following notification was received:</B><br><br>" & _ "COPY AND PAST NOTIFICATION RECEIVED HERE" & "<br><br>" & _ "<b>Control Center</b><br><br>" With OutMail '.SentOnBehalfOfName = "" .to = strto .cc = strcc .bcc = strbcc .Subject = strsub 'You can add a file to the mail like this .HTMLBody = strbody .Display ' or use .Send End With Set OutMail = Nothing Set OutApp = Nothing
- Excel создает электронную почту Outlook, но текст не выравнивается
- Текстовое поле подсказки, которое будет сохранять форматирование Outlook
- Excel VBA для поиска в почтовых сообщениях Outlook
- Копировать диапазон ячеек в почтовый адрес
- Excel: ошибка во время выполнения '-2147319779 (8002801d)':
- Код Excel VBA для чтения имени пользователя из ячейки, затем отправьте электронное письмо этому пользователю
- Ссылка в другой учетной записи
- что вызвало изменение файла вложений при отправке электронной почты Python
Основной ответ таков:
For Each cl In emailRng If cl.Offset(,1) = 1 Then sTo = sTo & ";" & cl.Value Next
Здесь вы проверяете, проверяется ли 1 столбец от адреса электронной почты (событие 1 в столбце E) для уведомления.
Однако, поскольку вы заявили, что у вас может быть n количество событий, вам понадобится способ определить, на какое событие вы отправляете электронное письмо. Я не знаю, как вы планируете обрабатывать это, но вы могли бы, например, вызвать Sub из другого Sub и передать номер события и использовать его как смещение.
Так
Sub EmailEvent() SendEventEmail 1 'send event 1 email SendEventEmail 2 'send event 2 email SendEventEmail 3 'send event 3 email End Sub
Тогда в вашем суде, который фактически отправляет почту, он сказал бы
Sub SendEventEmail(n as Long) Rem n is the Event Number Rem Your Code ... For Each cl in emailRng If cl.Offset(,n) = 1 Then sTo = sTo & ";" & cl.Value Next Rem Rest of code ... End Sub