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

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

Author: Xiaoyang Last Modified: 2025-08-07

Если у вас есть книга 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 с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–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% и сократите сотни кликов мышью ежедневно!