Как отправить электронное письмо, если определенная ячейка изменена в Excel?
В этой статье рассказывается об отправке электронного письма через Outlook, когда ячейка в определенном диапазоне изменяется в Excel.
Отправка электронного письма при изменении ячейки в определенном диапазоне с помощью кода VBA
Отправка электронного письма при изменении ячейки в определенном диапазоне с помощью кода VBA
Если вам нужно автоматически создать новое электронное письмо с вложенной активной книгой, когда ячейка в диапазоне A2:E11 изменяется на определенном листе, следующий код VBA может помочь вам.
1. На листе, для которого необходимо отправить электронное письмо на основе измененной ячейки в определенном диапазоне, щелкните правой кнопкой мыши вкладку листа и затем выберите Просмотр кода в контекстном меню. См. скриншот:
2. В появившемся окне Microsoft Visual Basic for Applications, пожалуйста, скопируйте и вставьте следующий код VBA в окно Код.
Код VBA: Отправка электронного письма при изменении ячейки в указанном диапазоне в Excel
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2017/9/12
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xRg = Range("A2:E11")
Set xRgSel = Intersect(Target, xRg)
ActiveWorkbook.Save
If Not xRgSel Is Nothing Then
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "Cell(s) " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "Email Address"
.Subject = "Worksheet modified in " & ThisWorkbook.FullName
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Примечания:
3. Одновременно нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.
С этого момента, при изменении любой ячейки в диапазоне A2:E11, будет создано новое электронное письмо с прикрепленной обновленной книгой. И все указанные поля, такие как тема, получатель и тело письма, будут перечислены в письме. Пожалуйста, отправьте письмо.
Примечание: Код VBA работает только если вы используете Outlook в качестве программы электронной почты.

Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Связанные статьи:
- Как автоматически отправлять электронное письмо на основе значения ячейки в Excel?
- Как отправить электронное письмо через Outlook при сохранении книги в Excel?
- Как отправить электронное письмо при нажатии кнопки в Excel?
- Как отправить электронное письмо при наступлении даты в Excel?
- Как отправить напоминание или уведомление по электронной почте при обновлении книги в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!