Come inviare e-mail se la data di scadenza è stata rispettata in Excel?
Come mostrato nella schermata seguente, se la data di scadenza nella colonna C è inferiore o uguale a 7 giorni (ad esempio la data corrente è 2017/9/13), viene inviata un'e-mail al destinatario specificato nella colonna A e il il contenuto specificato nella colonna B viene visualizzato nel corpo dell'e-mail. Come potresti fare per raggiungerlo? Questo articolo fornisce un codice VBA per aiutarti a svolgere questa attività.
Invia e-mail se la data di scadenza è stata rispettata con il codice VBA
Invia e-mail se la data di scadenza è stata rispettata con il codice VBA
Si prega di fare quanto segue per inviare un promemoria tramite posta elettronica se la data di scadenza è stata rispettata in Excel.
1. premi il altro + F11 tasti contemporaneamente per aprire il file Microsoft Visual Basic, Applications Edition finestra.
2. Nel Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Moduli. Quindi copia e incolla il codice VBA sottostante nella finestra del modulo.
Codice VBA: invia un'email se la data di scadenza è chiusa 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
Note: La linea Se CDate (xRgDateVal) - Data <= 7 E altre ancora… CDate (xRgDateVal) - Data> 0 Quindi nel codice VBA significa che la data di scadenza deve essere maggiore di 1 giorno e minore o uguale a 7 giorni. Puoi cambiarlo quando ti serve.
3. Stampa , il Tasto F5 per eseguire il codice. Nel primo spuntando Kutools for Excel finestra di dialogo, selezionare l'intervallo di colonne della data di scadenza e quindi fare clic su OK pulsante. Vedi screenshot:
4. Poi il secondo Kutools for Excel viene visualizzata la finestra di dialogo, selezionare l'intervallo di colonne corrispondente che contiene gli indirizzi e-mail dei destinatari e fare clic su OK pulsante. Vedi screenshot:
5. Nell'ultimo Kutools for Excel finestra di dialogo, selezionare il contenuto che si desidera visualizzare nel corpo del messaggio di posta elettronica, quindi fare clic su OK pulsante.
Quindi verrà creata automaticamente un'e-mail con il destinatario, l'oggetto e il corpo specificati elencati se la data di scadenza nella colonna C è inferiore o uguale a 7 giorni. Fare clic su Invia pulsante per inviare l'email.
Note:
1. Ogni e-mail creata corrisponde a una data di scadenza. Ad esempio, se tre date di scadenza soddisfano i criteri, verranno creati automaticamente tre messaggi di posta elettronica.
2. Questo codice non verrà attivato se non ci sono date che soddisfano i criteri.
3. Il codice VBA funziona solo quando si utilizza Outlook come programma di posta elettronica.
Articoli correlati:
- Come inviare automaticamente e-mail in base al valore della cella in Excel?
- Come inviare un'e-mail tramite Outlook quando la cartella di lavoro viene salvata in Excel?
- Come inviare e-mail se una determinata cella viene modificata in Excel?
- Come inviare e-mail se si fa clic sul pulsante in Excel?
- Come inviare un promemoria o una notifica tramite posta elettronica se la cartella di lavoro viene aggiornata in Excel?
I migliori strumenti per la produttività in ufficio
Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Fai clic qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!