Hur skickar jag e-post om förfallodatum har uppfyllts i Excel?
Som visas i skärmdumpen nedan, om förfallodatumet i kolumn C är mindre än eller lika med 7 dagar (till exempel är det aktuella datumet 2017/9/13), skickas ett e-postmeddelande till den angivna mottagaren i kolumn A och specificerat innehåll i kolumn B visas i e-postmeddelandets brödtext. Hur kunde du göra för att uppnå det? Den här artikeln innehåller en VBA-kod som hjälper dig att utföra denna uppgift.
Skicka e-post om förfallodatum har uppfyllts med VBA-kod
Skicka e-post om förfallodatum har uppfyllts med VBA-kod
Gör så här för att skicka en e-postpåminnelse om förfallodagen har uppnåtts i Excel.
1. tryck på andra + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.
2. I Microsoft Visual Basic för applikationer klicka på fönstret Insert > Modulerna. Kopiera och klistra in nedanstående VBA-kod i modulfönstret.
VBA-kod: Skicka e-post om förfallodatum stängs i 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
Anmärkningar: Linjen Om CDate (xRgDateVal) - Datum <= 7 Och CDate (xRgDateVal) - Datum> 0 Sedan betyder VBA-koden att förfallodatumet måste vara större än 1 dag och mindre än eller lika med 7 dagar. Du kan ändra det efter behov.
3. Tryck d F5-tangent för att köra koden. I det första dyker upp Kutools för Excel i dialogrutan, välj kolumnintervallet för förfallodatum och klicka sedan på OK knapp. Se skärmdump:
4. Sedan den andra Kutools för Excel dialogrutan dyker upp, välj motsvarande kolumnområde som innehåller mottagarnas e-postadresser och klicka på OK knapp. Se skärmdump:
5. I det sista Kutools för Excel i dialogrutan, välj det innehåll som du vill visa i e-posttexten och klicka sedan på OK knapp.
Då skapas ett e-postmeddelande automatiskt med angiven mottagare, ämne och kropp listad om förfallodagen i kolumn C är mindre än eller lika med 7 dagar. Klicka på Skicka knappen för att skicka e-postmeddelandet.
Anmärkningar:
1. Varje skapad e-post motsvarar ett förfallodatum. Om det till exempel finns tre förfallodatum som uppfyller kriterierna skapas tre e-postmeddelanden automatiskt.
2. Den här koden utlöses inte om det inte finns några datum som uppfyller kriterierna.
3. VBA-koden fungerar bara när du använder Outlook som ditt e-postprogram.
Relaterade artiklar:
- Hur skickar man automatiskt e-post baserat på cellvärde i Excel?
- Hur skickar jag ett e-postmeddelande via Outlook när arbetsboken sparas i Excel?
- Hur skickar jag e-post om en viss cell modifieras i Excel?
- Hur skickar jag e-post om du klickar på knappen i Excel?
- Hur skickar jag e-postpåminnelse eller avisering om arbetsboken uppdateras i Excel?
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!