Jak wysłać wiadomość e-mail, jeśli termin został osiągnięty w programie Excel?
Jak pokazano na poniższym zrzucie ekranu, jeśli termin płatności w kolumnie C jest krótszy lub równy 7 dni (na przykład aktualna data to 2017/9/13), wiadomość e-mail jest wysyłana do określonego odbiorcy w kolumnie A, a określona treść w kolumnie B jest wyświetlana w treści wiadomości e-mail. Jak mogłeś to zrobić? Ten artykuł zawiera kod VBA, który pomoże Ci wykonać to zadanie.
Wyślij e-mail, jeśli termin został osiągnięty z kodem VBA
Wyślij e-mail, jeśli termin został osiągnięty z kodem VBA
Wykonaj następujące czynności, aby wysłać e-mail z przypomnieniem, jeśli termin został osiągnięty w programie Excel.
1. wciśnij inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.
2. w Microsoft Visual Basic for Applications kliknij wstawka > Moduł. Następnie skopiuj i wklej poniższy kod VBA do okna Module.
Kod VBA: wyślij wiadomość e-mail, jeśli termin jest zamknięty w programie Excel
Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "<br><br>"
xMailBody = "<HTML><BODY>"
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & "</BODY></HTML>"
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Uwagi: Linia Jeśli CDate (xRgDateVal) - Date <= 7 oraz CDate (xRgDateVal) - data> 0 Wtedy w kodzie VBA oznacza, że termin płatności musi być dłuższy niż 1 dzień i krótszy lub równy 7 dni. Możesz to zmienić według potrzeb.
3. naciśnij dotychczasowy Klawisz F5, aby uruchomić kod. W pierwszym wyskakującym okienku Kutools dla programu Excel W oknie dialogowym wybierz zakres kolumn dat ukończenia, a następnie kliknij OK przycisk. Zobacz zrzut ekranu:
4. Następnie drugi Kutools dla programu Excel pojawi się okno dialogowe, wybierz odpowiedni zakres kolumn, który zawiera adresy e-mail odbiorców, i kliknij OK przycisk. Zobacz zrzut ekranu:
5. W ostatnim Kutools dla programu Excel W oknie dialogowym wybierz zawartość, którą chcesz wyświetlić w treści wiadomości e-mail, a następnie kliknij OK przycisk.
Następnie wiadomość e-mail zostanie utworzona automatycznie z określonym odbiorcą, tematem i treścią, jeśli termin w kolumnie C jest krótszy lub równy 7 dni. Proszę kliknąć Wyślij przycisk, aby wysłać wiadomość e-mail.
Uwagi:
1. Każdy utworzony e-mail odpowiada terminowi wykonania. Na przykład, jeśli istnieją trzy terminy spełniające kryteria, trzy wiadomości e-mail zostaną utworzone automatycznie.
2. Ten kod nie zostanie uruchomiony, jeśli nie ma dat spełniających kryteria.
3. Kod VBA działa tylko wtedy, gdy używasz Outlooka jako programu pocztowego.
Podobne artykuły:
- Jak automatycznie wysyłać wiadomości e-mail na podstawie wartości komórki w programie Excel?
- Jak wysłać wiadomość e-mail za pośrednictwem programu Outlook, gdy skoroszyt jest zapisany w programie Excel?
- Jak wysłać wiadomość e-mail, jeśli określona komórka zostanie zmodyfikowana w programie Excel?
- Jak wysłać wiadomość e-mail, jeśli przycisk zostanie kliknięty w programie Excel?
- Jak wysłać e-mail z przypomnieniem lub powiadomieniem, jeśli skoroszyt jest aktualizowany w programie Excel?
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!