Jak wysłać każdy arkusz na różne adresy e-mail z programu Excel?
Jeśli masz skoroszyt z kilkoma arkuszami, a w komórce A1 każdego arkusza znajduje się adres e-mail. Teraz chcesz wysłać każdy arkusz ze skoroszytu jako załącznik do odpowiedniego odbiorcy w komórce A1 indywidualnie. Jak mogłeś rozwiązać to zadanie w programie Excel? W tym artykule przedstawię kod VBA, aby wysłać każdy arkusz jako załącznik na inny adres e-mail z programu Excel.
Wyślij każdy arkusz na różne adresy e-mail z programu Excel za pomocą kodu VBA
Poniższy kod VBA może pomóc w wysłaniu każdego arkusza jako załącznika do różnych odbiorców, wykonaj następujące czynności:
1. naciśnij Alt + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.
2. Następnie kliknij wstawka > Modułi skopiuj i wklej poniższy kod VBA do okna.
Kod VBA: wyślij każdy arkusz jako załącznik na różne adresy e-mail
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 to komórka zawiera adres e-mail, na który chcesz wysłać wiadomość e-mail. Zmień je według swoich potrzeb.
- Możesz określić CC, BCC, Temat, Treść do swojego kodu w kodzie;
- Aby wysłać wiadomość e-mail bezpośrednio bez otwierania następującego okna nowej wiadomości, musisz zmienić .Pokaz do .Wysłać.
3. Następnie naciśnij F5 klucz, aby uruchomić ten kod, a każdy arkusz jest automatycznie wstawiany do nowego okna wiadomości jako załącznik, patrz zrzut ekranu:
4. Na koniec wystarczy kliknąć Wyślij przycisk, aby wysłać każdy e-mail jeden po drugim.
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!