Добавьте адрес электронной почты в сообщение электронной почты Outlook, если значение ячейки равно 1

Я пытаюсь получить помощь в отправке сообщения электронной почты любому, у кого есть «1» в столбце E. У меня есть рабочий лист с рядом сотрудников и их номера телефонов. После их телефонных номеров – список событий, о которых они хотят получить уведомление. Если я поместил 1 в один из столбцов после их имени, я бы хотел, чтобы их адрес электронной почты был добавлен в электронное письмо.

Заголовки столбцов будут такими, как A = Last Name, B = Имя, C = Номер телефона, D = Адрес электронной почты, E = Событие 1, F = Событие 2, G = событие 3 и т. Д.

Я смог получить код электронной почты, чтобы вытащить все адреса электронной почты из заданного диапазона, но я не могу понять, как добавить команду if для поиска заданного значения в одном из столбцов событий (E, F, G .. .). Ему нужно было бы пройти весь диапазон, а затем вытащить адрес только для выбранных лиц, у которых заданное значение было в одном из столбцов событий.

Вот мой код:

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 

Основной ответ таков:

 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 
  • Программно подавить сообщение электронной почты электронной почты Outlook с помощью Excel VBA
  • Добавить изображение в тело письма и подпись в Outlook через Excel-Vba
  • Как я могу создавать электронные письма только для уникальных адресов из столбца в excel?
  • Как создать соединение / ссылку между Excel и электронной почтой Outlook?
  • Excel Macro для создания электронных писем работает только при открытии IDE
  • Каждая строка отправляет электронное письмо тому же получателю
  • Вставить Word.Document в тело электронной почты?
  • Отправка электронной почты от Excel с помощью VBA - Outlook, добавляющий цвет фона
  • Создание вложения из листа Google в формате MS Excel через скрипт Google
  • Outlook 2010 - странная ошибка.
  • Excel VBA Отправить Email
  • Interesting Posts

    Экспорт 3 gridviews для Excel в 3 разных листах

    Открытие Excel с помощью c #; когда-нибудь без меню или границы окна

    Панель загрузки пользовательской формы VBA не запускается до закрытия окна

    Итерирование незарегистрированных надстроек (.xla)

    создать файл .xls с помощью php

    VBA Excel – Пользовательская форма с comboboxes фильтрует и записывает

    Предел столбца Excel

    Excel 2010: открыть файл, содержащий более 1 М строк?

    У меня такое же количество строк в DataGridView даже после удаления строк в файле excel (database)

    Excel: построение нескольких рядов на участке рассеяния

    Как вы не можете перемещать / редактировать командную кнопку Excel / ActiveX, но разрешать ее щелкнуть

    Использование VBA, как мне вызвать функцию Adobe Create PDF

    Как защитить паролем электронную почту в Outlook

    Чтение данных с сервера sql в excel-лист через веб-службу

    Форма гиперссылки на следующую пустую ячейку в столбце Excel

    Давайте будем гением компьютера.