KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

¿Cómo enviar cada hoja a una dirección de correo electrónico diferente desde Excel?

AutorXiaoyang Fecha de modificación

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
Nota: En el código anterior:
  • 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.

Una captura de pantalla de la ventana de código VBA para enviar cada hoja de Excel a una dirección de correo electrónico diferente en la celda S1

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:

Una captura de pantalla de nuevos mensajes de correo electrónico en Outlook, cada uno con una hoja de Excel adjunta enviada a destinatarios diferentes

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!

Función Enviar correos electrónicos personalizados

¿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

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose en:Ejecución Inteligente   |  Generar código|  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos|  Invocar Funciones mejoradas
Funciones populares:Buscar, resaltar o Marcar duplicados   |  Eliminar filas en blanco   |  Combinar Columnas o celdas sin perder datos   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir un número específico de columnas|Mover columnas|Alternar el estado de visibilidad de columnas ocultas|Comparar rangos y columnas...
Funciones destacadas:Cuadrícula de enfoque   |  Vista de diseño   |Barra de fórmulas mejorada   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

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.

ExcelWordOutlookTabsPowerPoint
  • 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