Hoe e-mail verzenden als de vervaldatum is bereikt in Excel?
Zoals te zien is in de onderstaande schermafbeelding, wordt er een e-mail verzonden naar de opgegeven ontvanger in kolom A als de vervaldatum in kolom C kleiner is dan of gelijk is aan 7 dagen (de huidige datum is bijvoorbeeld 2017/9/13). gespecificeerde inhoud in kolom B wordt weergegeven in de hoofdtekst van de e-mail. Hoe zou je kunnen doen om het te bereiken? Dit artikel bevat een VBA-code om u te helpen deze taak uit te voeren.
Stuur een e-mail als de vervaldatum is bereikt met de VBA-code
Stuur een e-mail als de vervaldatum is bereikt met de VBA-code
Ga als volgt te werk om een e-mailherinnering te sturen als de vervaldatum in Excel is bereikt.
1. druk de anders + F11 toetsen tegelijkertijd om het Microsoft Visual Basic voor toepassingen venster.
2. In de Microsoft Visual Basic voor toepassingen venster, klik dan Invoegen > Module. Kopieer en plak vervolgens de onderstaande VBA-code in het modulevenster.
VBA-code: stuur een e-mail als de vervaldatum is gesloten in 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
Opmerkingen: De lijn Als CDate (xRgDateVal) - Datum <= 7 En CDate (xRgDateVal) - Datum> 0 Dan betekent in de VBA-code dat de vervaldatum groter moet zijn dan 1 dag en kleiner dan of gelijk aan 7 dagen. U kunt het naar behoefte wijzigen.
3. druk op de F5-toets om de code uit te voeren. Bij de eerste die opduikt Kutools for Excel dialoogvenster, selecteer het kolombereik van de vervaldatum en klik vervolgens op het OK knop. Zie screenshot:
4. Dan de tweede Kutools for Excel dialoogvenster verschijnt, selecteer het corresponderende kolombereik dat de e-mailadressen van de ontvangers bevat en klik op het OK knop. Zie screenshot:
5. In de laatste Kutools for Excel dialoogvenster, selecteer de inhoud die u in de hoofdtekst van de e-mail wilt weergeven en klik vervolgens op het OK knop.
Vervolgens wordt automatisch een e-mail gemaakt met de opgegeven ontvanger, onderwerp en hoofdtekst als de vervaldatum in kolom C minder dan of gelijk is aan 7 dagen. Klik op het Verzenden knop om de e-mail te verzenden.
Opmerkingen:
1. Elke aangemaakte e-mail komt overeen met een vervaldatum. Als er bijvoorbeeld drie vervaldatums aan de criteria voldoen, worden automatisch drie e-mailberichten gemaakt.
2. Deze code wordt niet geactiveerd als er geen datums zijn die aan de criteria voldoen.
3. De VBA-code werkt alleen als u Outlook als uw e-mailprogramma gebruikt.
Gerelateerde artikelen:
- Hoe automatisch e-mail verzenden op basis van celwaarde in Excel?
- Hoe stuur ik een e-mail via Outlook wanneer de werkmap is opgeslagen in Excel?
- Hoe verzend ik een e-mail als een bepaalde cel is gewijzigd in Excel?
- Hoe verzend ik een e-mail als op de knop wordt geklikt in Excel?
- Hoe stuur ik een e-mailherinnering of -melding als de werkmap wordt bijgewerkt in Excel?
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!