¿Cómo enviar un correo electrónico si una determinada celda se modifica en Excel?
Este artículo habla sobre el envío de un correo electrónico a través de Outlook cuando se modifica una celda en un rango determinado en Excel.
Envíe un correo electrónico si la celda en un cierto rango se modifica con el código VBA
Envíe un correo electrónico si la celda en un cierto rango se modifica con el código VBA
Si necesita crear un nuevo correo electrónico automáticamente con el libro de trabajo activo adjunto cuando se modifica una celda en el rango A2: E11 en una determinada hoja de trabajo, el siguiente código de VBA puede ayudarlo.
1. En la hoja de trabajo que necesita enviar por correo electrónico en función de su celda modificada en un cierto rango, haga clic con el botón derecho en la pestaña de la hoja y luego haga clic en el Ver código desde el menú contextual. Ver captura de pantalla:
2. En la aparición Microsoft Visual Basic para aplicaciones ventana, copie y pegue debajo del código VBA en la ventana Código.
Código de VBA: envíe un correo electrónico si la celda en un rango específico se modifica en Excel
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2017/9/12
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xRg = Range("A2:E11")
Set xRgSel = Intersect(Target, xRg)
ActiveWorkbook.Save
If Not xRgSel Is Nothing Then
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "Cell(s) " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "Email Address"
.Subject = "Worksheet modified in " & ThisWorkbook.FullName
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Notas:
3. presione el otro + Q teclas simultáneamente para cerrar el Microsoft Visual Basic para aplicaciones ventana.
A partir de ahora, se modifica cualquier celda en el rango A2: E11, se creará un nuevo correo electrónico con el libro actualizado adjunto. Y todos los campos especificados, como asunto, destinatario y cuerpo del correo electrónico, se incluirán en el correo electrónico. Envíe el correo electrónico.
Note: El código VBA solo funciona si está utilizando 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 se hace clic en el botón en Excel?
- ¿Cómo enviar un correo electrónico si se ha cumplido la fecha de vencimiento 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!