Почтовый лист (ы) с одним или несколькими людьми с помощью VBA в Microsoft Excel
Добавьте новый лист, измените имя листа на mail.
Каждое письмо, которое вы хотите отправить, будет содержать 3 столбца.
-
в столбце A введите лист или название листов, которые вы хотите отправить.
-
в столбце B — введите адрес электронной почты.
-
в столбце C — заголовок темы отображается в верхней части сообщения электронной почты.
Столбец A: C введите информацию для первого письма, вы можете использовать столбцы D: F для второго.
таким образом вы можете отправить 85 различных писем (85 * 3 = 255 столбцов).
Sub Mail_sheets() Dim MyArr As Variant Dim last As Long Dim shname As Long Dim a As Integer Dim Arr() As String Dim N As Integer Dim strdate As String For a = 1 To 253 Step 3 If ThisWorkbook.Sheets("mail").Cells(1, a).Value = "" Then Exit Sub Application.ScreenUpdating = False last = ThisWorkbook.Sheets("mail").Cells(Rows.Count, a).End(xlUp).Row N = 0 For shname = 1 To last N = N + 1 ReDim Preserve Arr(1 To N) Arr(N) = ThisWorkbook.Sheets("mail").Cells(shname, a).Value Next shname ThisWorkbook.Worksheets(Arr).Copy strdate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss") ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name _ & " " & strdate & ".xls" With ThisWorkbook.Sheets("mail") MyArr = .Range(.Cells(1, a + 1), .Cells(Rows.Count, a + 1).End(xlUp)) End With ActiveWorkbook.SendMail MyArr, ThisWorkbook.Sheets("mail").Cells(1, a + 2).Value ActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName ActiveWorkbook.Close False Application.ScreenUpdating = True Next a End Sub