Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

Если у вас несколько адресов электронной почты в столбце рабочего листа, и теперь вы хотите отправить электронное письмо этому списку получателей из Excel напрямую, не открывая Outlook. В этой статье я расскажу о том, как отправлять электронную почту нескольким получателям из Excel одновременно.

Отправить электронное письмо нескольким получателям из Excel с кодом VBA

Отправить электронное письмо нескольким получателям с текущей книгой в виде вложения с помощью кода VBA


Отправляйте персонализированные письма нескольким получателям с различными вложениями:

Kutools for Excel's Отправить письма вы можете быстро отправлять персонализированные электронные письма нескольким получателям с различными вложениями из Excel через Outlook по мере необходимости. В то же время вы можете передавать сообщения CC или Bcc конкретному человеку.

doc отправлять персонализированные письма 18 1


arrow синий правый пузырь Отправить электронное письмо нескольким получателям из Excel с кодом VBA


Вы можете использовать код VBA для отправки сообщения сразу нескольким получателям, пожалуйста, сделайте следующее:

1. Удерживая нажатой ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окна.

2. щелчок Вставить > модуль, и вставьте следующий код в Окно модуля.

Код VBA: отправить электронное письмо нескольким получателям

Sub sendmultiple()
'updateby Extendoffice 20160506
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Display
    End With
End Sub

3, Затем нажмите F5 чтобы выполнить этот код, появится окно подсказки, чтобы напомнить вам о выборе списка адресов, см. снимок экрана:

doc отправить нескольких получателей 1

4, Затем нажмите OK, и Outlook Сообщение отображается окно, вы можете увидеть, что все выбранные адреса электронной почты были добавлены в к поле, а затем вы можете ввести тему и составить свое сообщение, см. снимок экрана:

doc отправить нескольких получателей 2

5, По окончании сообщения нажмите Отправить , и это сообщение будет отправлено этим получателям в списке ваших рабочих листов.


arrow синий правый пузырь Отправить электронное письмо нескольким получателям с текущей книгой в виде вложения с помощью кода VBA

Если вам необходимо отправить сообщение нескольким получателям с текущей книгой в качестве вложения, вы можете применить следующий код VBA.

1, Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окна.

2. Щелчок Вставить > модуль, и вставьте следующий код в Окно модуля.

Код VBA: отправить электронное письмо нескольким получателям с текущей книгой в качестве вложения

Sub EmailAttachmentRecipients()
'updateby Extendoffice 20160506
    Dim xOutlook As Object
    Dim xMailItem As Object
    Dim xRg As Range
    Dim xCell As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the arresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOutlook = CreateObject("Outlook.Application")
    Set xMailItem = xOutlook.CreateItem(0)
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    With xMailItem
        .To = xEmailAddr
        .CC = ""
        .Subject = ""
        .Body = ""
        .Attachments.Add ActiveWorkbook.FullName
        .Display
    End With
    Set xOutlook = Nothing
    Set xMailItem = Nothing
End Sub

3, После вставки кода нажмите F5 ключ для запуска этого кода, и появится окно подсказки, чтобы напомнить вам, как выбрать адреса, на которые вы хотите отправить сообщение, см. снимок экрана:

doc отправить нескольких получателей 3

4. Затем нажмите OK и Outlook Сообщение отображается окно, все адреса электронной почты были добавлены в к поле, и ваша текущая книга также вставлена ​​в качестве вложения, а затем вы можете ввести тему и составить свое сообщение, см. снимок экрана:

doc отправить нескольких получателей 4

5, Затем нажмите Отправить чтобы отправить это сообщение в список получателей с текущей книгой в качестве вложения.


Связанная статья:

Как отправить персонализированные массовые письма в список из Excel через Outlook?


Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905

Вкладка «Office» предоставляет интерфейс с вкладками для Office и упрощает работу

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jose · 5 months ago
    I have this Code, my problem is that it creates one email for each time the condition is not complete, but i want to put all the info that dont reach the condition in only one email

    Sub EnviarCorreo()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim lLastRow As Long
    Dim lRow As Long
    Dim sSendTo As String
    Dim sSendCC As String
    Dim sSendBCC As String
    Dim sSubject As String
    Dim sTemp As String

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    ' Change the following as needed
    sSendTo = ""
    sSendCC = ""
    sSendBCC = ""
    sSubject = "Due date reached"

    Set OutMail = OutApp.CreateItem(0)

    lLastRow = Cells(Rows.Count, 3).End(xlUp).Row
    For lRow = 3 To lLastRow
    If Cells(lRow, 9) <> "S" Then
    If Cells(lRow, 2) <= Date Then

    On Error Resume Next
    With OutMail
    .To = sSendTo
    If sSendCC > "" Then .CC = sSendCC
    If sSendBCC > "" Then .BCC = sSendBCC
    .Subject = sSubject

    sTemp = "Hello!" & vbCrLf & vbCrLf
    sTemp = sTemp & "The due date has been reached "
    sTemp = sTemp & "for this project:" & vbCrLf & vbCrLf


    'THIS IS WHAT I WANT TO REPEAT ON EMAIL BODY
    ' Assumes project name is in column B
    sTemp = sTemp & "ID:"
    sTemp = sTemp & " " & Cells(lRow, 1)
    sTemp = sTemp & " Description: "
    sTemp = sTemp & " " & Cells(lRow, 5)
    sTemp = sTemp & " Please take the appropriate"
    sTemp = sTemp & " action." & vbCrLf & vbCrLf
    sTemp = sTemp & " Thank you!" & vbCrLf
    'UNTIL HERE



    .Body = sTemp
    ' Change the following to .Send if you want to
    ' send the message without reviewing first
    .Display
    End With
    Set OutMail = Nothing

    Cells(lRow, 9) = "S"
    Cells(lRow, 10) = "E-mail sent on: " & Now()
    End If
    End If
    Next lRow
    Set OutApp = Nothing
    End Sub
  • To post as a guest, your comment is unpublished.
    steve · 7 months ago
    Morning,


    I am new to trying to write and use macros in excel. My first attempt was to try and create a subset mass email from a large master list. I cut and pasted the first routine, then tried to use it all it did was highlight the cells I requested. no outlook email was created, what did I do wrong? To expand upon my actual request, I really want to target emails by zip code or other subsets. how do I create a macro that will search a column for a given zip code and create an email with all recipients found?

    thank you

    Steve
  • To post as a guest, your comment is unpublished.
    Vinicius · 10 months ago
    Hi ! Every month i should send the same e-mail for diferent providers, but they should not be in the same e-mail..... how could i send the same e-mail for diferent destinations without everyone in the same e-mail ?
  • To post as a guest, your comment is unpublished.
    James V · 10 months ago
    Any way to use this to send from a shared email? I cannot seem to inset a .SendOnBehalfOf field.
  • To post as a guest, your comment is unpublished.
    Robert Springer · 1 years ago
    How can I do this using the BCC line?
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hi, Robert,
      After running the code, the new message window will be opened, you just need to insert the BCC line under the Option tab, see the following screenshot:


      Hope it can help you, thank you!
  • To post as a guest, your comment is unpublished.
    Shashank · 2 years ago
    Hello,

    Thank you for the code.
    Is there a way i can create a command button on the excel and then by clicking on that button the same excel sheet can be sent to multiple recipients as an attachment.
  • To post as a guest, your comment is unpublished.
    Jake · 2 years ago
    Hi,

    The VBA code is working well for me thank you. Is there any way I could create a cell with a button of sorts which triggers the "select mailing list" pop up?

    Jake
  • To post as a guest, your comment is unpublished.
    Matthew · 3 years ago
    This is awesome, exactly what I want.
    Is there anyway to add a feature where you can add a message to the subject line using code....
    I dont want anything in message box