Макрос на Excel за автоматично изпращане на имейл (3 подходящи примера)

  • Споделя Това
Hugh West

В този урок ще илюстрираме как да използваме макрос на Excel за автоматично изпращане на имейл. Можем да конфигурираме функцията за изпращане на имейли с помощта на VBA макроси. Така че, използвайки VBA макрос можем да изпратим имейл до няколко потребители едновременно. Трябва да имаме Outlook инсталирана на нашето устройство, за да изпращаме автоматично имейли с макрос. Тъй като кодът, който ще вмъкнем, ще използва Outlook за изпращане на имейли до получателите.

Изтегляне на работна тетрадка за практика

Можете да изтеглите работната тетрадка за упражнения от тук.

Автоматично изпращане на имейл.xlsm

3 подходящи примера за макрос на Excel за автоматично изпращане на имейл

В тази статия ще демонстрираме 3 подходящи примери за използване на макрос на Excel за автоматично изпращане на имейл до получателите. Преди да започнем да илюстрираме примера, трябва да поправим нещо в нашия лист на Excel. Изпълнете следните стъпки, преди да приложите макрос за автоматично изпращане на имейл.

СТЪПКИ:

  • Първо, от своя набор от данни отидете в раздел Разработчик . Изберете опцията Visual Basic .

  • След това отидете в Инструмент и изберете опцията Препратки .

  • Създава се нов диалогов прозорец с име ' Препратки - VBAProject ' ще се отвори.
  • Накрая маркирайте опцията ' Библиотека за обекти на Microsoft Office 16.0 ' и щракнете върху ОК .

1. Прилагане на Excel VBA макрос за автоматично изпращане на имейл въз основа на стойността на клетката

На първо място, ще приложим програмата excel VBA за автоматично изпращане на имейл въз основа на конкретна стойност на клетка в нашата съвкупност от данни. За да илюстрираме този пример, ще използваме следната съвкупност от данни. Ще напишем код, който ще изпрати имейл автоматично, ако стойността на клетката в клетката D6 е по-голям от 400 .

Нека видим стъпките за извършване на това действие.

СТЪПКИ:

  • Като начало, вдясно - кликнете върху на листа Въз основа на Cell '.
  • Освен това изберете опцията Вижте кода '.

  • Горното действие ще отвори празен VBA Друг начин за отваряне на прозореца с кода е да натиснете Alt + F11 .
  • Освен това въведете следния код в този прозорец за код:
 Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End Sub Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z =CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Здравейте!" & vbNewLine & vbNewLine & _ "Надявам се, че сте добре" & vbNewLine & _ "Посетете нашия сайт Exceldemy" On Error Resume Next With y .To = "Адрес" .cc = "" .BCC = "" .Subject = "изпращане на поща въз основа на стойността на клетката" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub 
  • След това щракнете върху Изпълнявайте или натиснете бутона F5 за да стартирате кода.

  • Появява се нов диалогов прозорец с име Макроси ще се появи.
  • След това в Име на макроса изберете макроса send_mail_outlook '.
  • Сега кликнете върху Изпълнявайте бутон.

  • И накрая, от сега нататък, когато стойността на клетката в клетката D6> 400 имейл в Outlook ще се генерира автоматично с конкретни получатели. Трябва просто да кликнем върху Изпрати за да изпратите имейл.

Прочетете още: Автоматично изпращане на имейли от Excel въз основа на съдържанието на клетките (2 метода)

2. Автоматично изпращане на имейл въз основа на датата на плащане с макрос VBA

При втория метод ще използваме Excel VBA Макрос за автоматично изпращане на имейл, ако датата на плащане на някой проект е близо. Това е нещо като напомняне. Използваме следния набор от данни, за да илюстрираме този пример. Наборът от данни съдържа имейли на различни търговци, съобщения и датата на плащане на техния проект.

Следвайте стъпките по-долу, за да приложите този метод.

СТЪПКИ:

  • Първо, щракнете с десния бутон на мишката върху лист Дата .
  • След това изберете опцията Вижте кода '.

  • Той отваря празен VBA прозорец с код за активния работен лист. Можем също така да натиснем Alt + F11 за да получите този прозорец с код.
  • След това въведете следния код в прозореца за код:
 Публично подчинение Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("изберете колоната на дължимотоdate:", _ "Send Mail Base on Date", , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("изберете колоната за получателите на имейла:", _ "Send Mail Base on Date", , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("изберете колоната за съдържанието на имейла:", _ "Send Mail Base on Date", , , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= " 

" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If Next Set aOutApp = Nothing EndПод

  • Сега използвайте Изпълнявайте или бутона F5 за да стартирате кода.

  • Ще се появи нов диалогов прозорец.
  • След това в полето за въвеждане на диалоговия прозорец изберете диапазона на колоната с датата на падежа D$5:$D$9 . След това щракнете върху ОК .

  • Ще се появи още един диалогов прозорец.
  • Освен това в полето за въвеждане изберете обхвата на колоната B$5:$B$9 която съдържа имейл адресите, и щракнете върху ОК .

  • Освен това ще се появи още един прозорец. Изберете обхвата на съобщението $C$5:$C$9 в полето за въвеждане на изскачащия прозорец.

  • В крайна сметка можем да видим резултати като на следното изображение. Получаваме 3 имейли, които се създават автоматично в 3 различни прозорци на Outlook . Това няма да създаде поща за първите два имейл адреса. Тъй като срокът за изпълнение на тези два проекта е изтекъл.

Прочетете още: Как автоматично да изпращате имейл от Excel въз основа на дата

Подобни четива

  • [Решено]: Споделената работна книга не се показва в Excel (с лесни стъпки)
  • Как да изпращате имейли от списък на Excel (2 ефективни начина)
  • Как да изпратите редактируема електронна таблица на Excel по имейл (3 бързи метода)
  • Макрос за изпращане на имейл от Excel (5 подходящи примера)
  • Макрос за изпращане на имейл от Excel с тяло (3 полезни случая)

3. Използвайте макрос на Excel за автоматично изпращане на имейл с прикачени файлове

В последния пример ще видим как можем да разработим макрос на Excel за автоматично изпращане на имейл с прикачени файлове. Да предположим, че имаме прикачен файл на следното изображение. Искаме да изпратим този прикачен файл чрез имейл, като използваме Excel VBA макрос. За да направим това, ни е необходим пътят до този файл на Excel. Ето стъпките за това:

  • Изберете файла ' Attachment.xlsx ' '.
  • Кликнете върху опцията Копиране на пътя '.

  • И така, пътят на файла, който получаваме:
E:\Exceldemy\Attachment.xlsx

Ще вмъкнем този път в нашия макрокод, за да изпратим този файл по електронна поща. Следвайте следните стъпки, за да направите това.

СТЪПКИ:

  • Първо, отидете в Разработчик и изберете опцията Visual Basic .

  • Нов прозорец с име ' Проект - ще се отвори VBAProject '.
  • Второ, щракване с десния бутон на мишката върху върху името на листа.
  • След това изберете Вмъкване на > Модул .

  • Горната команда ще отвори празен VBA
  • Трето, въведете следния код в този модул:
 Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Изпращане на имейл с VBA." MyMail.Body = "Това е примерна поща." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub 
  • След това натиснете F5 или щракнете върху Изпълнявайте за да стартирате кода.

  • Накрая кодът ще изпрати прикачения файл на предоставените в кода имейли. Кодът изпраща имейли чрез Outlook . Така че кликнете върху Позволете бутон, за да позволите Outlook изпращане на прикачения файл до дадените имейли.

Прочетете още: Как да приложите макрос за изпращане на имейл от Excel с прикачен файл

Заключение

В заключение, тази статия показва. 3 примери за използване на Excel VBA макрос за автоматично изпращане на поща. Изтеглете примерния работен лист, даден в тази статия, за да изпробвате уменията си. Ако имате някакви въпроси, моля, оставете коментар в полето по-долу. Нашият екип ще се опита да отговори на съобщението ви възможно най-скоро. Следете за още изобретателни Microsoft Excel решения в бъдеще.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.