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

Як надіслати електронне повідомлення через Outlook, коли книга зберігається в Excel?

У цій статті йдеться про надсилання електронного листа через Outlook, коли певна книга зберігається в Excel. Будь ласка, виконуйте, як показано в підручнику.

Надішліть електронне повідомлення через Outlook, коли книга зберігається з кодом VBA


Надішліть електронне повідомлення через Outlook, коли книга зберігається з кодом VBA


Для надсилання електронного листа через Outlook, коли книга зберігається в Excel, виконайте наступні дії.

1. Спочатку збережіть книгу як книгу з підтримкою макросів Excel. Клацніть філе > Зберегти як, в Зберегти як діалоговому вікні, виберіть папку для збереження книги, назвіть її у полі Ім'я файлу, виберіть Книга Excel з підтримкою макросів від Зберегти як , а потім клацніть на зберегти кнопку. Дивіться знімок екрана:

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

2 В Microsoft Visual Basic для додатків вікно, двічі клацніть ThisWorkbook на лівій панелі, а потім скопіюйте та вставте наведений нижче код VBA в ThisWorkbook вікно коду. Дивіться знімок екрана:

Код VBA: Надішліть електронне повідомлення, коли книга збережена

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

примітки: Будь ласка, замініть Адреса електронної пошти з адресою електронної пошти одержувача .To = "Адреса електронної пошти", і змініть Cc, Subject, а також поля body у коді VBA, як вам потрібно.

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

Відтепер, коли ви оновите книгу та збережете її, електронна пошта буде створена автоматично з доданою оновленою книгою. Клацніть на Відправити , щоб надіслати електронне повідомлення. Дивіться знімок екрана:

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


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

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% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (17)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Як автоматизувати сповіщення електронною поштою у VBA на основі діапазону дат, без необхідності бачити спливаюче вікно для дозволу безпеки, щоб дозволити VBA надсилати електронний лист.
Цей коментар був мінімізований модератором на сайті
Gracias. Консультація: utilizando esta misma rutina, como podría enviar el correo a un correo específico dependiendo el valor de otra celda?
Цей коментар був мінімізований модератором на сайті
Шановні всі, я хотів би запитати, як приєднати функціональне посилання до певної папки на сервері, якщо я вставлю посилання, воно з'явиться в книзі як звичайний текст і тому воно не працює в отриманому електронному листі, як я можу перетворити його на посилання, щоб одержувачі могли натиснути на нього?
Я хотів би використовувати цей спосіб замість того, щоб надсилати вкладений файл Excel.
Дякую за пораду
Цей коментар був мінімізований модератором на сайті
Привіт Роберт
На жаль, не можу допомогти з цим. Ласкаво просимо опублікувати будь-які запитання щодо Excel на нашому форумі: https://www.extendoffice.com/forum.html. Ви отримаєте більше підтримки Excel від наших професіоналів або інших шанувальників Excel.
Цей коментар був мінімізований модератором на сайті
Я вставив це в тіло листа, і це спрацювало для мене...
"file:///Z:\dir1\dir2\dir3\Test1.xlsm"
Цей коментар був мінімізований модератором на сайті
Привіт, гарна стаття! Одного, чого я намагався досягти за допомогою цього, — це прикріпити поточний стан книги до електронного листа.

На даний момент він надсилає лише початковий стан файлу і не містить жодних змін, які б зробив користувач.

Будь-які ідеї щодо того, як це реалізувати за допомогою макросу?
Цей коментар був мінімізований модератором на сайті
Привіт Кріс,
Код оновлено, проблема вирішена, будь ласка, спробуйте. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Привіт Кріс,

Я стикався з такою ж проблемою.
Наразі коди використовуються в модулі «перед збереженням».
Це означає, що електронна пошта надішле електронну таблицю, яку було збережено раніше.

Є ще один модуль «після збереження».
Я застосував код у цьому модулі, і він запрацював як чарівний шарм.
Цей коментар був мінімізований модератором на сайті
Як це буде оброблено для документа Office 365. Він автоматично зберігається.
Цей коментар був мінімізований модератором на сайті
Чи є спосіб автоматичного шифрування електронної пошти?
Цей коментар був мінімізований модератором на сайті
Привіт Майк,
На жаль, не можу допомогти вирішити цю проблему. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Привіт! Велике спасибі за цю інструкцію :-) Я хотів би зробити щось більше в цьому коді – надіслати електронний лист на основі країн. Це означає, що я повинен створювати команди за допомогою if та select. так? Я вже видалив вкладення з електронної пошти. Натомість я хотів би додати посилання з шляхом до папки. Але під час запуску макросу команда недійсна :-(
Я ціную кожну допомогу, як додати її туди.
Цей коментар був мінімізований модератором на сайті
Привіт! Як я можу включити дані осередку в поле "cc" електронної пошти?
Цей коментар був мінімізований модератором на сайті
Привіт Брент,
Припустимо, що ви хочете включити значення в клітинку a7 в поле "cc" електронної пошти, спробуйте наведений нижче VBA.

Приватна підпорядкована книга_AfterSave(ByVal Success As Boolean)

'Оновлено Extendoffice 20200628

Зменшіть xOutApp як об’єкт

Змінити xMailItem як об’єкт

Dim xName як рядок

On Error Resume Next

Встановіть xOutApp = CreateObject("Outlook.Application")

Встановити xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

За допомогою xMailItem

.To = "Адреса електронної пошти"

.CC = Діапазон ("a7").Значення


.Subject = "Книгу було збережено"

.Body = "Привіт," & Chr(13) & Chr(13) & "Файл оновлено."

.Вкладення.Додати xName

Відображення

'.відправити

Кінець з

Встановіть xMailItem = Нічого

Встановіть xOutApp = Нічого

End Sub
Цей коментар був мінімізований модератором на сайті
Шановні, хтось може мені допомогти, я новачок у кодуванні VBA, я вніс певні зміни, але як я можу це зробити, надіслати електронний лист, якщо робоча книга збережена, і якщо ім’я користувача відрізняється, наприклад, якщо ім’я користувача станція є glade2, то надішліть електронну пошту, якщо книга збережена, інакше не надсилайте.

Щиро дякую за вашу підтримку
Цей коментар був мінімізований модератором на сайті
Привіт, флорін,
Не зрозумів вашої думки. Що означає ваше ім’я користувача?
Цей коментар був мінімізований модератором на сайті
Привіт Crystal, дякую за вашу відповідь, usernane є середовищем usernane, і я зробив це, я використовував функцію if та вихідний підряд.
Дуже дякую.
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця