¿Cómo enviar un correo electrónico si se ha cumplido la fecha de vencimiento en Excel?
Como se muestra en la siguiente captura de pantalla, si la fecha de vencimiento en la columna C es menor o igual a 7 días (por ejemplo, la fecha actual es 2017/9/13), se envía un correo electrónico al destinatario especificado en la columna A y el el contenido especificado en la columna B se muestra en el cuerpo del correo electrónico. ¿Cómo podrías hacer para lograrlo? Este artículo proporciona un código VBA para ayudarlo a realizar esta tarea.
Envíe un correo electrónico si se ha cumplido la fecha de vencimiento con el código VBA
Envíe un correo electrónico si se ha cumplido la fecha de vencimiento con el código VBA
Haga lo siguiente para enviar un recordatorio por correo electrónico si se ha cumplido la fecha de vencimiento en Excel.
1. presione el otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.
2. En el Microsoft Visual Basic para aplicaciones ventana, haga clic en recuadro > Módulo. Luego copie y pegue el siguiente código VBA en la ventana del Módulo.
Código de VBA: envíe un correo electrónico si la fecha de vencimiento está cerrada en 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
Notas: La línea Si CDate (xRgDateVal) - Fecha <= 7 Y CDate (xRgDateVal) - Fecha> 0 Luego, en el código VBA significa que la fecha de vencimiento debe ser mayor que 1 día y menor o igual a 7 días. Puede cambiarlo cuando lo necesite.
3. Prensa las Tecla F5 para ejecutar el código. En la primera aparición Kutools for Excel cuadro de diálogo, seleccione el rango de la columna de fecha de vencimiento y luego haga clic en el OK botón. Ver captura de pantalla:
4. Luego el segundo Kutools for Excel aparece el cuadro de diálogo, seleccione el rango de columna correspondiente que contiene las direcciones de correo electrónico de los destinatarios y haga clic en el OK botón. Ver captura de pantalla:
5. En el último Kutools for Excel cuadro de diálogo, seleccione el contenido que desea mostrar en el cuerpo del correo electrónico y luego haga clic en el OK del botón.
Luego, se creará un correo electrónico automáticamente con el destinatario, el asunto y el cuerpo especificados si la fecha de vencimiento en la columna C es menor o igual a 7 días. Haga clic en el Enviar botón para enviar el correo electrónico.
Notas:
1. Cada correo electrónico creado corresponde a una fecha de vencimiento. Por ejemplo, si hay tres fechas de vencimiento que cumplen los criterios, se crearán automáticamente tres mensajes de correo electrónico.
2. Este código no se activará si no hay fechas que cumplan con los criterios.
3. El código VBA solo funciona cuando usa Outlook como su programa de correo electrónico.
Artículos relacionados:
- ¿Cómo enviar correos electrónicos automáticamente según el valor de la celda en Excel?
- ¿Cómo enviar un correo electrónico a través de Outlook cuando el libro de trabajo se guarda en Excel?
- ¿Cómo enviar un correo electrónico si una determinada celda se modifica en Excel?
- ¿Cómo enviar un correo electrónico si se hace clic en el botón en Excel?
- ¿Cómo enviar un recordatorio o una notificación por correo electrónico si el libro de trabajo se actualiza en Excel?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!