¿Cómo enviar cada hoja a una dirección de correo electrónico diferente desde Excel?
Si tiene un libro de Excel con varias hojas de cálculo, cada una con una dirección de correo electrónico en la celda S1, es posible que desee enviar cada hoja como un archivo adjunto independiente a su destinatario correspondiente. Realizar esta tarea manualmente puede resultar tedioso, especialmente cuando trabaja con un gran número de hojas. En este tutorial, le mostraremos cómo utilizar código VBA para enviar automáticamente cada hoja de su archivo de Excel como adjunto al destinatario cuya dirección de correo electrónico figure en la celda S1 de dicha hoja.
Enviar cada hoja a distintos Dirección de correo electrónico desde Excel con código VBA
El siguiente código VBA le permitirá enviar cada hoja de cálculo como archivo adjunto al destinatario indicado en la celda S1. Siga estos pasos:
1. Pulse simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. A continuación, haga clic en Insertar > Módulo y copie y pegue el siguiente código VBA en la ventana.
Código VBA: enviar cada hoja como archivo adjunto a distintos Dirección de correo electrónico
Sub Mail_Every_Worksheet()
'Updateby ExtendOffice
Dim xWs As Worksheet
Dim xWb As Workbook
Dim xFileExt As String
Dim xFileFormatNum As Long
Dim xTempFilePath As String
Dim xFileName As String
Dim xOlApp As Object
Dim xMailObj As Object
On Error Resume Next
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
xTempFilePath = Environ$("temp") & "\"
If Val(Application.Version) < 12 Then
xFileExt = ".xls": xFileFormatNum = -4143
Else
xFileExt = ".xlsm": xFileFormatNum = 52
End If
Set xOlApp = CreateObject("Outlook.Application")
For Each xWs In ThisWorkbook.Worksheets
If xWs.Range("S1").Value Like "?*@?*.?*" Then
xWs.Copy
Set xWb = ActiveWorkbook
xFileName = xWs.Name & " of " _
& VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & " "
Set xMailObj = xOlApp.CreateItem(0)
xWb.Sheets.Item(1).Range("S1").Value = ""
With xWb
.SaveAs xTempFilePath & xFileName & xFileExt, FileFormat:=xFileFormatNum
With xMailObj
'specify the CC, BCC, Subject, Body below
.To = xWs.Range("S1").Value
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add xWb.FullName
.Display
End With
.Close SaveChanges:=False
End With
Set xMailObj = Nothing
Kill xTempFilePath & xFileName & xFileExt
End If
Next
Set xOlApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
- S1 es la celda que contiene la dirección de correo electrónico a la que desea enviar el mensaje. Si sus direcciones de correo electrónico se encuentran en una celda distinta, como por ejemplo A1, puede modificar el código para reflejar ese cambio.
- Puede especificar los campos CC, CCO, Asunto y Cuerpo según sus necesidades en el código;
- Para enviar el correo directamente sin abrir la siguiente ventana de mensaje nuevo, debe cambiar .Display por .Send.

3. A continuación, pulse la tecla F5 para ejecutar este código y cada hoja se insertará automáticamente como archivo adjunto en la nueva ventana de mensaje; consulte la captura de pantalla:

4. Por último, haga clic en el botón Enviar para enviar cada correo electrónico uno por uno.
Kutools para Excel: ¡Envíe correos electrónicos personalizados con un solo clic!

¿Cansado de enviar correos electrónicos a clientes uno por uno? Con la función «Enviar correos electrónicos» de Kutools para Excel, la comunicación se vuelve más rápida y profesional. Simplemente prepare una hoja de Excel con nombres, direcciones de correo electrónico, códigos de registro y marcadores de posición; el sistema generará automáticamente correos electrónicos personalizados y enviará cientos con un solo clic. ¡Adiós al trabajo repetitivo!
- 💡 Los marcadores dinámicos (por ejemplo, nombre, código de registro) rellenan automáticamente contenido personalizado para cada destinatario, asegurando que cada correo electrónico parezca único y a medida.
- 📎 Adjunte archivos personalizados para una entrega precisa
- 📤 Se integra perfectamente con Outlook para un envío seguro y fiable
- 📝 Guarde y reutilice plantillas de correo electrónico para obtener la máxima eficiencia
- 🎨 Editor WYSIWYG (lo que ves es lo que obtienes), fácil de usar
- ¡Utilice su firma de Outlook: sin configuración adicional, simplemente pulse enviar!
- ¡Consigue Kutools para Excel ahora!
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active 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 dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos