Folha (s) de correio para uma ou mais pessoas usando VBA no Microsoft Excel

Anonim

Adicione uma nova folha, altere o nome da folha para e-mail.
Cada e-mail que você deseja enviar usará 3 colunas.

  1. na coluna A - digite o nome da folha ou folhas que deseja enviar.
  2. na coluna B - insira o endereço de e-mail.
  3. na coluna C - o título do assunto aparece na parte superior da mensagem de e-mail.

A coluna A: C insira informações para o primeiro e-mail e você pode usar as colunas D: F para o segundo.
você pode enviar 85 e-mails diferentes dessa forma (85 * 3 = 255 colunas).

 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 a 253 Etapa 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 Para shname = 1 para durar N = N + 1 ReDim Preserve Arr (1 para N) Arr (N) = ThisWorkbook.Sheets ("mail"). Células (shname, a) .Value Next shname ThisWorkbook.Worksheets (Arr). Copiar strdate = Format (Date, "dd-mm-yy") & "" & Format (Time, "h-mm-ss") ActiveWorkbook.SaveAs "Parte de" & ThisWorkbook.Name _ & "" & strdate & " .xls "Com ThisWorkbook.Sheets (" mail ") MyArr = .Range (.Cells (1, a + 1), .Cells (Rows.Count, a + 1) .End (xlUp)) End With ActiveWorkbook.SendMail MyArr , ThisWorkbook.Sheets ("mail"). Células (1, a + 2) .Value ActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName ActiveWorkbook.Close False Application.ScreenUpdating = True Next a End Sub