¿Cómo enviar cada hoja a diferentes direcciones de correo electrónico desde Excel?
Si tiene un libro de Excel con múltiples hojas de cálculo, cada una conteniendo una dirección de correo electrónico en la celda S1, es posible que desee enviar cada hoja como un archivo adjunto separado a su respectivo destinatario. Esta tarea puede ser tediosa si se realiza manualmente, especialmente cuando se trata de un gran número de hojas. En este tutorial, le mostraremos cómo usar código VBA para enviar automáticamente cada hoja de cálculo de su archivo de Excel como un archivo adjunto a la dirección de correo electrónico especificada en la celda S1 de cada hoja.
Enviar cada hoja a diferentes direcciones de correo electrónico desde Excel con código VBA
El siguiente código VBA le permitirá enviar cada hoja de cálculo como un archivo adjunto al destinatario correspondiente listado en la celda S1. Por favor, siga estos pasos:
1. Presione simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Luego, 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 diferentes direcciones 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 correo. Si sus direcciones de correo están en una celda diferente, como A1, puede modificar el código para reflejar ese cambio.
- Puede especificar el CC, CCO, Asunto y Cuerpo según sus necesidades en el código;
- Para enviar el correo directamente sin abrir la siguiente ventana de nuevo mensaje, necesita cambiar .Display a .Send.
3. Luego, presione la tecla F5 para ejecutar este código, y cada hoja se insertará automáticamente en la ventana de nuevo mensaje como un archivo adjunto, vea la captura de pantalla:
4. Finalmente, haga clic en el botón Enviar para enviar cada correo uno por uno.
Kutools para Excel: ¡Envía correos electrónicos personalizados fácilmente en un solo clic!

¿Cansado de enviar correos electrónicos a los clientes uno por uno? Con la función “Enviar correo electrónico” de Kutools para Excel, la comunicación se vuelve más rápida y profesional. Simplemente prepara una hoja de cálculo de Excel con nombres, direcciones de correo electrónico, códigos de registro e inserta marcadores de posición; el sistema generará automáticamente correos electrónicos personalizados y enviará cientos con solo un clic. ¡Adiós al trabajo repetitivo!
- 💡 Los marcadores de posición dinámicos (por ejemplo, nombre, código de registro) rellenan automáticamente el contenido personalizado para cada destinatario, asegurando que cada correo electrónico se sienta único.
- 📎 Adjunta archivos personalizados para una entrega precisa
- 📤 Se integra perfectamente con Outlook para envíos seguros y confiables
- 📝 Guarda y reutiliza plantillas de correo electrónico para maximizar la eficiencia
- 🎨 Editor de tipo «lo que ves es lo que obtienes» que es fácil de usar
- 🖋 Usa tu firma de Outlook: sin configuración adicional, ¡solo presiona enviar!
- ¡Consigue Kutools para Excel ahora!
Las mejores herramientas de productividad para Office
Mejora tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab incorpora la interfaz de pestañas en Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!
Todos los complementos de Kutools. Un solo instalador
El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.





- Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
- Mejor juntos: productividad optimizada en todas las aplicaciones de Office
- Prueba completa de30 días: sin registro ni tarjeta de crédito
- La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos