Note: The other languages of the website are Google-translated. Back to English

Як надіслати електронне повідомлення з копіюванням та вставкою певного діапазону в тіло електронної пошти в Excel?

У багатьох випадках зазначений діапазон вмісту на аркуші Excel може бути корисним у спілкуванні електронною поштою. У цій статті ми представимо метод надсилання електронного листа із вказаним діапазоном вставки в тіло електронної пошти безпосередньо в Excel.

Надішліть електронний лист із вказаним діапазоном, вставленим у тіло електронної пошти в Excel
Надсилайте електронний лист із зазначеним діапазоном, вставленим у тіло електронної пошти, за допомогою чудового інструменту

Більше підручників з розсилки в Excel ...


Надішліть електронний лист із вказаним діапазоном, вставленим у тіло електронної пошти в Excel

Наступний код VBA може допомогти вам скопіювати діапазон і вставити його в тіло електронної пошти Outlook безпосередньо в Excel. Будь ласка, виконайте наступне.

1. На аркуші містить діапазон, який потрібно скопіювати, натисніть клавішу інший + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. На відкритті Microsoft Visual Basic для додатків вікно, натисніть інструменти > посилання як показано на знімку екрана.

3 В Посилання - VBAProject діалогове вікно, будь ласка, знайдіть і позначте Бібліотека об’єктів Microsoft Outlook , а потім клацніть на OK кнопки.

4. клацання Insert > Модулі, а потім скопіюйте та вставте наведений нижче код 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 = "happy.xuebi@163.com"
        .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). Вкажіть одержувача електронної пошти та тему (.To = happy.xuebi@163.com і .Subject = "test") рядків у коді.

5 Натисніть кнопку F5 клавіша для запуску коду. У спливаючому Kutools для Excel діалоговому вікні, виберіть діапазон, який потрібно вставити в тіло електронної пошти, а потім клацніть на OK кнопку. Дивіться знімок екрана:

6. Тепер створюється електронний лист із зазначеним одержувачем, темою, тілом та вибраним діапазоном Excel, натисніть кнопку Відправити кнопку, щоб надіслати цей електронний лист. Див. Показаний знімок екрана.

примітки: Код VBA працює лише тоді, коли ви використовуєте Outlook як програму електронної пошти.


Надсилайте електронний лист із зазначеним діапазоном, вставленим у тіло електронної пошти, за допомогою чудового інструменту

Якщо ви не використовуєте Outlook і все ще хочете надсилати електронні листи безпосередньо в Excel із вказаними даними про діапазон даних, я настійно рекомендую Надіслати електронні листи корисність Kutools для Excel для вас. За допомогою цієї функції вам просто потрібно налаштувати вихідний сервер адреси електронної пошти, а потім надсилати електронні листи в Excel безпосередньо через цю електронну адресу в майбутньому.

Перед поданням заявки Kutools для Excel, будь ласка завантажте та встановіть його спочатку.

1. По-перше, вам потрібно підготувати список розсилки з необхідними полями.

  • чайові: Список розсилки повинен містити принаймні 2 рядки, а перший рядок - заголовки (припустимо, ви хочете надіслати електронні листи на дві адреси електронної пошти в Excel, введіть ці дві адреси електронної пошти заголовком “Електронна пошта”, як показано на знімку екрана нижче) ).
  • Крім того, ви можете легко створити список розсилки за допомогою Створити список розсилки функцію.

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

3. Виберіть весь список розсилки (включайте заголовки), натисніть Kutools Plus > Надіслати електронні листи. Дивіться знімок екрана:

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 для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (20)
Оцінено 4.5 з 5 · рейтинги 1
Цей коментар був мінімізований модератором на сайті
Цей код чудовий, але мені потрібно виконувати командну кнопку, а не натискати F5 у режимі перегляду коду. Я хотів би, щоб мої співробітники могли заповнити деяку інформацію, а потім натиснути кнопку, щоб вона скопіювала діапазон клітинок, які вони заповнили, і вставляла в електронну пошту. Я можу отримати код, який працює для кнопки електронної пошти та окремо для копіювання/вставки діапазону комірок, але не можу поєднати обидві функції. Будь ласка, допоможіть!!! Спасибі!
Цей коментар був мінімізований модератором на сайті
Привіт Майкл,
Вам просто потрібно створити кнопку (наприклад, кнопку (контроль форми)) на робочому аркуші, а потім призначити кнопці макрос.
Цей коментар був мінімізований модератором на сайті
Привіт, Кристал, дякую!
У мене був створений код, і мені було цікаво, як призначити коду кнопку команди. Ваш пост допоміг! і мій звіт працює як шарм.

Знову дякую.
Цей коментар був мінімізований модератором на сайті
Це чудово. Він працює, як очікувалося. Єдина проблема полягає в тому, що формат таблиці не підтримується в пошті. Чи можете ви повідомити мені, як ми зберігаємо формат таблиці поштою
Цей коментар був мінімізований модератором на сайті
Hi
Цей код відмінний, використовуючи код, я завершив 90% свого проекту.
У мене така ж проблема, як описано Анірудом, а саме форматування таблиці. Як я можу відформатувати таблицю в електронній пошті.
Будь ласка, допоможи мені......
Цей коментар був мінімізований модератором на сайті
Хороший день,
Проблему поки не можна вирішити. Вибачте за незручності та дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Привіт, чи є якісь оновлення нижче......
Цей коментар був мінімізований модератором на сайті
Привіт, я також хотів код для "Фільтрувати за датою".
Я працюю над проектом, над цим проектом я хотів відфільтрувати дані за датою, насправді ми маємо фільтрувати/приховати дані за останні 05 днів до поточної дати, і ми виділили всі інші дані.
Будь ласка, допоможіть мені завершити цей проект.
Ваша допомога дуже велика для мене.
Цей коментар був мінімізований модератором на сайті
Код для автоматичного надсилання після вибору після ОК
Цей коментар був мінімізований модератором на сайті
це вставляється як текст. Підкажіть, будь ласка, як надіслати таблицю або той самий формат, який скопійовано з Excel.
Цей коментар був мінімізований модератором на сайті
Я бачу помилку компіляції (тип, визначений користувачем, не визначено". Будь ласка, допоможіть мені подолати це.
Цей коментар був мінімізований модератором на сайті
привіт,
Будь ласка, увійдіть у вікно Довідки, натиснувши Інструменти > Посилання. Прокрутіть униз, щоб знайти та встановити прапорець Бібліотека об’єктів Microsoft Outlook, і натисніть кнопку OK, щоб завершити налаштування.
Цей коментар був мінімізований модератором на сайті
Привіт, експерти! Чи є у нас оновлення про те, як підтримується формат?
Цей коментар був мінімізований модератором на сайті
Привіт,
Не можу зрозуміти. Вибачте за це.
Цей коментар був мінімізований модератором на сайті
привіт,
Замість того, щоб вибирати діапазон вручну, я хочу вибрати діапазон автоматично.
Цей коментар був мінімізований модератором на сайті
Привіт Раман,
У коді нижче замініть діапазон "A1:C5" у рядку Set xRg = Range("A1:C5") на свій власний діапазон.

Sub Send_Email ()
Dim xRg As Range
Dim I, J As Long
Dim xAddress як рядок
Dim xEmailBody як рядок
Змінити xMailOut як Outlook.MailItem
Зменшіть xOutApp як Outlook.Application
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Встановити xRg = діапазон ("A1:C5")
Якщо xRg — нічого, вийдіть із Sub
Application.ScreenUpdating = Невірний
Встановіть xOutApp = CreateObject("Outlook.Application")
Встановити xMailOut = xOutApp.CreateItem(olMailItem)
Для I = 1 До xRg.Rows.Count
Для J = 1 To xRg.Columns.Count
xEmailBody = xEmailBody & " " & xRg.Cells(I, J).Value
Далі
xEmailBody = xEmailBody & vbNewLine
Далі
xEmailBody = "Привіт" & vbLf & vbLf & "тіло повідомлення, яке потрібно додати" & vbLf & vbLf & xEmailBody & vbNewLine
За допомогою xMailOut
.Subject = "Тест"
.To = "happy.xuebi@163.com"
.Body = xEmailBody
Відображення
'.Надіслати
Кінець з
Встановіть xMailOut = Нічого
Встановіть xOutApp = Нічого
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
привіт,
Замість вибору діапазону я хочу вибрати кілька опорних точок в Excel.
чи можете ви мені допомогти.
Цей коментар був мінімізований модератором на сайті
Здравствуйте,
Ви можете мені допомогти нижче
Я створив аркуш Excel та оновив інформацію про пошту 10 постачальників. Я надіслав пошту через excel всім 10 постачальникам із вкладенням окремого аркуша з окремою поштою.
Я хочу вставити дані Excel в тіло Outlook замість вкладення в пошту
може хтось мені допомогти
Цей коментар був мінімізований модератором на сайті
Єдина проблема полягає в тому, що формат таблиці не підтримується в пошті. Чи можете ви повідомити мені, як ми зберігаємо формат таблиці в пошті, у мене така ж проблема, чи не могли б ви оновити її, будь ласка, інакше це чудово.
Велике спасибі
Оцінено 4.5 з 5
Цей коментар був мінімізований модератором на сайті
Привіт, Енді Мітчелл!
Якщо ви хочете зберегти формат таблиці, наведений нижче сценарій VBA може зробити вам послугу. Будь ласка, спробуйте. Дякую.
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 = "happy.xuebi@163.com"
        .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
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця