Poštovní listy jednomu nebo více lidem používajícím VBA v Microsoft Excelu

Anonim

Přidat nový list, změnit název listu na poštu.
Každá pošta, kterou chcete odeslat, bude používat 3 sloupce.

  1. ve sloupci A - zadejte název listu nebo listů, který chcete odeslat.
  2. ve sloupci B - zadejte e -mailovou adresu.
  3. ve sloupci C - název předmětu se zobrazí v horní části e -mailové zprávy.

Sloupec A: C zadejte informace pro první poštu a pro druhý můžete použít sloupce D: F.
tímto způsobem můžete odeslat 85 různých e-mailů (85*3 = 255 sloupců).

 Dílčí listy_šablony () Dim MyArr jako varianta Dim poslední jako Long Dim shname Jako Long Dim a As Integer Dim Arr () Jako řetězec Dim N jako Integer Dim strdate jako řetězec pro a = 1 až 253 Krok 3 If ThisWorkbook.Sheets ("mail" ) .Články (1, a) .Hodnota = "" Poté Ukončete dílčí aplikaci.ScreenUpdating = False last = ThisWorkbook.Sheets ("mail"). Buňky (Rows.Count, a). End (xlUp). Řádek 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). Kopírovat strdate = formát (datum, "dd-mm-rr") & "" & formát (čas, "h-mm-ss") ActiveWorkbook.SaveAs "součást" & 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