Страницы: 1
RSS
Отправка письма макросом с прикрепленным файлом нескольким адресатам, Добавить в рабочий код возможность указания нескольких получателей
 
Привет, друзья!
Воспользовался кодом  The_Prist (за что ему отдельное спасибо) для отправки  почты макросом. Все работает отлично, но мне нужно добавить еще несколько получателей, и вот на этом моменте я застрял) Но никак не могу туда прикрутить в код несколько получателей. То он у меня отправит два письма подряд, то только одному.
Прошу помощи.
Код
Option Explicit
 
Sub Send_Mail()
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
 
    Application.ScreenUpdating = False
    On Error Resume Next
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
    
    sTo = "AddressTo@mail.ru"    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
    sSubject = "Автоотправка"    'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
    sBody = "Привет от Excel-VBA"    'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
    sAttachment = "C:\Temp\Книга1.xls"    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
    
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        .CC = "" 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .Body = sBody 'текст сообщения
        '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
        .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Изменено: Dyroff - 16.05.2017 18:28:42
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Привет. Сцепляйте емэйлы через зпт. Файла нет, потому так кратко.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,  Попробовал вот так
Код
sTo = "dyrov.aa@xxx.ru"& "," & "berdnikov.dv@xxx.ru" 
- не работает.
так
Код
sTo = "dyrov.aa@xxx.ru" & " " & "," & " " & "berdnikov.dv@xxx.ru"

тоже нет
И вот так
Код
sTo = "dyrov.aa@xxx.ru" ,"berdnikov.dv@xxx.ru"

тоже(
не работает
Пример прикрепил.
Изменено: Dyroff - 16.05.2017 18:35:04
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Вместо запятой - точка-с-запятой, если Outlook в русской локали.
Код
sTo = "dyrov.aa@xxx.ru;berdnikov.dv@xxx.ru"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, Спасибо Вам, и за макрос и за помощь)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
The_Prist, Доброго времени суток. Аналогичный вопрос. Не получается также добавить нескольких получателей. Создал файл Excel в котором есть несколько выпадающих списков (ячейки B1-K1) где выбирая номер магазина в другой ячейке выбирается соответствующий email в ячейках B7-K7. Нужно отправить письмо одновременно на 10 выбранных магазинов в ячейках, но как это прописать в коде не пойму. Пробовал воспользоваться подсказками на зарубежных форумах: (https://docs.microsoft.com/en-us/office/vba/excel/concepts/working-with-other-applications/sending-email-to-a-list-of-recipients-using-excel-and-outlook , https://stackoverflow.com/questions/14985261/how-can-i-use-outlook-to-send-email-to-multiple-recipients-in-excel-vba , https://www.extendoffice.com/documents/excel/3559-excel-send-email-to-multiple-recipients.html , https://www.ozgrid.com/forum/index.php?thread/1204285-vba-code-to-send-email-to-multiple-recipients/ , https://www.ozgrid.com/forum/index.php?thread/118963-excel-vba-email-using-outlook-to-multiple-recipients/ ), но ничего не получается код не работает. Изначальный код в спойлере. Подскажите пожалуйста как прописать так , что бы в получатели в Outlook были все 10 email из ячеек B7-K7.
Заранее благодарю.
Скрытый текст
Изменено: SanyaMan90 - 30.01.2020 23:19:06
 
The_Prist, Доброго времени. Подскажите пожалуйста а можно в данном примере (макросе) написать свои текст письма (sBody) на разных строках и с простой формулой даты -
Например:______________________________
Добрый день.
Отчет за 36 неделю во вложении.
Следующее обновление 25.01.2022
___________________________________

Или лучше завести новую книгу и от туда подтягивать данные?

Заранее благодарю
 
Цитата
PMO87 написал:
на разных строках и с простой формулой даты
сцепляйте при помощи Chr(10) или Chr(13).
Что за дата и откуда её брать не знаю, поэтому ответить не могу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
сцепляйте при помощи Chr(10) или Chr(13).
Спасибо большое, так и сделаю, осталось дату меняющую найти
Страницы: 1
Наверх