Как отправить каждый лист на разные адреса электронной почты из Excel?
Если у вас есть книга Excel с несколькими листами, каждый из которых содержит адрес электронной почты в ячейке S1, вы можете захотеть отправить каждый лист как отдельное вложение соответствующему получателю. Эта задача может быть утомительной, если выполнять её вручную, особенно при работе с большим количеством листов. В этом руководстве мы покажем вам, как использовать код VBA для автоматической отправки каждого листа из вашего файла Excel в виде вложения на адрес электронной почты, указанный в ячейке S1 каждого листа.
Отправка каждого листа на разные адреса электронной почты из Excel с помощью кода VBA
Следующий код VBA позволит вам отправлять каждый лист как вложение соответствующему получателю, указанному в ячейке S1. Пожалуйста, следуйте этим шагам:
1. Нажмите клавиши Alt+ F11 одновременно, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Затем нажмите Вставить > Модуль и скопируйте и вставьте приведенный ниже код VBA в окно.
Код VBA: Отправить каждый лист как вложение на разные адреса электронной почты
Sub Mail_Every_Worksheet()
'Updateby ExtendOffice
Dim xWs As Worksheet
Dim xWb As Workbook
Dim xFileExt As String
Dim xFileFormatNum As Long
Dim xTempFilePath As String
Dim xFileName As String
Dim xOlApp As Object
Dim xMailObj As Object
On Error Resume Next
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
xTempFilePath = Environ$("temp") & "\"
If Val(Application.Version) < 12 Then
xFileExt = ".xls": xFileFormatNum = -4143
Else
xFileExt = ".xlsm": xFileFormatNum = 52
End If
Set xOlApp = CreateObject("Outlook.Application")
For Each xWs In ThisWorkbook.Worksheets
If xWs.Range("S1").Value Like "?*@?*.?*" Then
xWs.Copy
Set xWb = ActiveWorkbook
xFileName = xWs.Name & " of " _
& VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & " "
Set xMailObj = xOlApp.CreateItem(0)
xWb.Sheets.Item(1).Range("S1").Value = ""
With xWb
.SaveAs xTempFilePath & xFileName & xFileExt, FileFormat:=xFileFormatNum
With xMailObj
'specify the CC, BCC, Subject, Body below
.To = xWs.Range("S1").Value
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add xWb.FullName
.Display
End With
.Close SaveChanges:=False
End With
Set xMailObj = Nothing
Kill xTempFilePath & xFileName & xFileExt
End If
Next
Set xOlApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
- S1 — это ячейка, содержащая адрес электронной почты, на который вы хотите отправить письмо. Если ваши адреса электронной почты находятся в другой ячейке, например A1, вы можете изменить код, чтобы отразить это изменение.
- Вы можете указать Копию (CC), Скрытую копию (BCC), Тему, Текст письма по своему усмотрению в коде;
- Чтобы отправить письмо напрямую без открытия нового окна сообщения, вам нужно изменить .Display на .Send.
3. Затем нажмите клавишу F5, чтобы запустить этот код, и каждый лист будет автоматически вставлен в новое окно сообщения как вложение, см. скриншот:
4. Наконец, нажмите кнопку Отправить, чтобы отправить каждое письмо одно за другим.
Kutools для Excel: Легко отправляйте персонализированные электронные письма одним щелчком!

Устали отсылать клиентам электронные письма по одному? С помощью функции «Отправить письмо» в Kutools для Excel коммуникация становится быстрее и профессиональнее! Просто подготовьте таблицу Excel с именами, адресами электронной почты, регистрационными кодами и вставьте заполнители — система автоматически создаст персонализированные письма и отправит сотни одним щелчком. Забудьте о повторяющейся работе!
- 💡 Динамические заполнители (например, имя, регистрационный код) автоматически заполняют персонализированное содержимое для каждого получателя, делая каждое письмо уникальным.
- 📎 Прикрепите персонализированные файлы для точного предоставления данных
- 📤 Плавная интеграция с Outlook для безопасной и надежной отправки
- 📝 Сохраняйте и повторно используйте шаблоны электронных писем для максимальной эффективности
- 🎨 Простой в использовании редактор WYSIWYG (что видишь, то и получаешь)
- 🖋 Использует вашу подпись Outlook — никаких дополнительных настроек, просто нажмите «Отправить»!
- Получите Kutools для Excel прямо сейчас!
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
- Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!
Все надстройки Kutools. Один установщик
Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.





- Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек