Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как отправить каждый лист на разные адреса электронной почты из Excel?

Author Xiaoyang Last modified

Если у вас есть книга 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.

A screenshot of the VBA code window for sending each sheet from Excel to a different email address in cell S1

3. Затем нажмите клавишу F5, чтобы запустить этот код, и каждый лист будет автоматически вставлен в новое окно сообщения как вложение, см. скриншот:

A screenshot of new email messages in Outlook, each with an attached Excel sheet sent to different recipients

4. Наконец, нажмите кнопку Отправить, чтобы отправить каждое письмо одно за другим.


Kutools для Excel: Легко отправляйте персонализированные электронные письма одним щелчком!

Send Personalized Emails feature

Устали отсылать клиентам электронные письма по одному? С помощью функции «Отправить письмо» в Kutools для Excel коммуникация становится быстрее и профессиональнее! Просто подготовьте таблицу Excel с именами, адресами электронной почты, регистрационными кодами и вставьте заполнители — система автоматически создаст персонализированные письма и отправит сотни одним щелчком. Забудьте о повторяющейся работе!

  • 💡 Динамические заполнители (например, имя, регистрационный код) автоматически заполняют персонализированное содержимое для каждого получателя, делая каждое письмо уникальным.
  • 📎 Прикрепите персонализированные файлы для точного предоставления данных
  • 📤 Плавная интеграция с Outlook для безопасной и надежной отправки
  • 📝 Сохраняйте и повторно используйте шаблоны электронных писем для максимальной эффективности
  • 🎨 Простой в использовании редактор WYSIWYG (что видишь, то и получаешь)
  • 🖋 Использует вашу подпись Outlook — никаких дополнительных настроек, просто нажмите «Отправить»!
  • Получите Kutools для Excel прямо сейчас!

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

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