Перейти к основному содержанию

Как отправить электронное письмо с копированием и вставкой указанного диапазона в тело письма в Excel?

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

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

Дополнительные руководства по рассылке писем в Excel ...


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

Следующий код VBA может помочь вам скопировать диапазон и вставить его в тело электронной почты Outlook прямо в Excel. Пожалуйста, сделайте следующее.

1. На листе содержится диапазон, который необходимо скопировать, нажмите кнопку другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В дебюте Microsoft Visual Basic для приложений окно, пожалуйста, нажмите Инструменты > Рекомендации как показано ниже.

3. в Ссылки - VBAProject диалоговом окне найдите и проверьте Библиотека объектов Microsoft Outlook вариант, а затем щелкните OK .

4. Нажмите Вставить > Модули, затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: отправить электронное письмо с указанным диапазоном, вставленным в тело письма в Excel

Sub Send_Email()
'Updated by Extendoffice 20200119
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xEmailBody As String
    Dim xMailOut As Outlook.MailItem
    Dim xOutApp As Outlook.Application    
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xRg.Rows.Count
        For J = 1 To xRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xRg.Cells(I, J).value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = ""
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Заметки:

  • 1). Пожалуйста, измените текст электронного письма в строке xEmailBody = "Привет" & vbLf & vbLf & "тело сообщения, которое вы хотите добавить" & vbLf & vbLf & xEmailBody & vbNewLine как вам нужно.
  • 2). Укажите получателя электронной почты и тему (.К = и .Subject = "test") строк в коде.

5. нажмите F5 ключ для запуска кода. В всплывающем Kutools for Excel В диалоговом окне выберите диапазон, который необходимо вставить в текст сообщения электронной почты, а затем щелкните значок OK кнопка. Смотрите скриншот:

6. Теперь создается электронное письмо с указанным получателем, темой, телом и выбранным диапазоном Excel. Щелкните значок Отправить кнопку, чтобы отправить это письмо. См. Показанный снимок экрана.

Внимание: Код VBA работает только при использовании Outlook в качестве почтовой программы.


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

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

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Во-первых, вам необходимо подготовить список рассылки с необходимыми полями.

  • Советы: Список рассылки должен содержать не менее 2 строк, и первая строка должна быть заголовками (Предположим, вы хотите отправлять электронные письма на два адреса электронной почты в Excel, введите эти два адреса электронной почты с заголовком «Электронная почта», как показано на скриншоте ниже. ).
  • Кроме того, вы можете легко создать список рассылки с Создать список рассылки функцию.

2. Выберите диапазон, в который вы будете добавлять данные в тело письма, и нажмите Ctrl + C ключи для его копирования.

3. Выберите весь список рассылки (включая заголовки), нажмите Кутулс Плюс > Отправить письма. Смотрите скриншот:

4. Затем Отправить письма появится диалоговое окно.

  • 4.1) Элементы выбранного списка рассылки заполняются в соответствующих полях (вы можете добавить дополнительные поля в список рассылки по своему усмотрению);
  • 4.2) Щелкните поле тела сообщения электронной почты, нажмите кнопку Ctrl + V клавиши, чтобы вставить в него данные выбранного диапазона. После этого добавьте другой контент по мере необходимости;
  • 4.3 Снимите флажок Отправлять электронные письма через Outlook коробка;
  • 2.4) Нажмите Настройки исходящего сервера кнопка. Смотрите скриншот:

5. Затем Настройки сервера исходящей почты (SMTP) - Новая схема появится диалоговое окно. Пожалуйста, заполните адрес электронной почты с настройками его сервера, укажите папку для сохранения всех отправленных писем после проверки Сохранять отправленные письма в поле, а затем щелкните OK чтобы сохранить настройки.

6. Когда он вернется в Отправить письма диалогового окна, нажмите Отправить кнопку, чтобы отправить электронное письмо.

С этого момента вы можете напрямую отправлять электронные письма с помощью этой функции в Excel.

  Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Статьи по теме:

Отправлять электронную почту на адреса электронной почты, указанные в ячейках Excel
Предположим, у вас есть список адресов электронной почты, и вы хотите массово отправлять сообщения электронной почты на эти адреса прямо в Excel. Как этого добиться? В этой статье будут показаны способы отправки электронной почты на несколько адресов электронной почты, указанных в ячейках Excel.

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

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

Отправить электронное письмо, если срок оплаты в Excel соблюден
Например, если срок оплаты в столбце C меньше или равен 7 дням (текущая дата - 2017/9/13), то отправьте электронное напоминание указанному получателю в столбце A с указанным содержанием в столбце B. Как сделать Добейся этого? В этой статье будет предоставлен метод VBA для более подробного решения этой проблемы.

Автоматически отправлять электронную почту на основе значения ячейки в Excel
Предположим, вы хотите отправить электронное письмо через Outlook определенному получателю на основе указанного значения ячейки в Excel. Например, если значение ячейки D7 на листе больше 200, электронное письмо создается автоматически. В этой статье представлен метод VBA, позволяющий быстро решить эту проблему.

Дополнительные руководства по рассылке писем в Excel ...

Лучшие инструменты для офисной работы

🤖 Kutools AI Помощник: Революционный анализ данных на основе: Интеллектуальное исполнение   |  Генерировать код  |  Создание пользовательских формул  |  Анализ данных и создание диаграмм  |  Вызов функций Kutools...
Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (22)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail, I have the same issue, could you see if you could update it please, otherwise this is excellent.
Many thanks
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
Hi Andy Mitchell,
If you want to maintain the format of the table, the following VBA script can do you a favor. Please give it a try. Thank you.
Sub Send_Email()
'Updated by Extendoffice 20220616
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "Test"
        .To = ""
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function
This comment was minimized by the moderator on the site
This worked perfectly, thank you so much.
I can now add my spin on it to get it doing what I need.
This comment was minimized by the moderator on the site
Hi Paul Johnson,

Very happy to help you solve the problem. Have a good day at work.
This comment was minimized by the moderator on the site
hello,
can you help me on below
I have create excel sheet & updated 10 supplier mail detailI have send mail through excel to all 10 supplier with individual sheet attachment with individual mail.
I want to paste excel data in outlook body instead of attachment in mail
can any one help me
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range, I want to select multiple pivots in the excel.
can you please help me.
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range manually, I want to select the range automatically.
This comment was minimized by the moderator on the site
Hi Raman,
In the below code, please replace the range "A1:C5" in line Set xRg = Range("A1:C5") with your own range.

Sub Send_Email()
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xEmailBody As String
Dim xMailOut As Outlook.MailItem
Dim xOutApp As Outlook.Application
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Range("A1:C5")
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
For I = 1 To xRg.Rows.Count
For J = 1 To xRg.Columns.Count
xEmailBody = xEmailBody & " " & xRg.Cells(I, J).Value
Next
xEmailBody = xEmailBody & vbNewLine
Next
xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
With xMailOut
.Subject = "Test"
.To = ""
.Body = xEmailBody
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Hi experts, Do we have updates on how the format maintained?
This comment was minimized by the moderator on the site
Hi Ther,
Can't figure it out. Sorry for that.
This comment was minimized by the moderator on the site
i am seeing a compile error (User-defined type not defined". Please help me out to overcome this.
This comment was minimized by the moderator on the site
Hi,
Please get into the Reference window by clicking Tools > references. Scroll down to find and check the Microsoft Outlook Object Library box and click the OK button to finish the setting.
This comment was minimized by the moderator on the site
this is pasting as a text. Kindly suggest how to send the table or the same format which is copied from the excel.
This comment was minimized by the moderator on the site
Code to send automatically after selecting after ok
This comment was minimized by the moderator on the site
Hi
This code is vary excellent, by using the code i have completed my 90% of my project.
I have same issue as mentioned by Anirudh that is table formatting. How can i format the table in email.
Please help me......
This comment was minimized by the moderator on the site
Good Day,
The problem can't be solved yet. Sorry for the inconvenience and thank you for your comment.
This comment was minimized by the moderator on the site
Hi, Is there any update on below.......
This comment was minimized by the moderator on the site
Hi, Also I Wanted code for "Filter by Date".
I am working on project, on that project I wanted to filter the data by the date, actually we have filter/hide the and last 05 days to current date data and we have highlight all other data.
Please help me to complete this project.
Your help is very great-full for me.
This comment was minimized by the moderator on the site
This is great. It is working as expected. The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations