Skip to main content

¿Cómo enviar o adjuntar un rango de celdas por correo electrónico a través de Outlook desde Excel?

Author: Xiaoyang Last Modified: 2025-06-03

¿Alguna vez has tenido el problema de que, después de terminar un informe en una hoja de trabajo, necesitas enviar un rango de celdas en esta hoja que contiene algunos datos importantes a un destinatario específico? ¿Existen formas rápidas de enviar este rango directamente desde Excel sin abrir Outlook?

Enviar un rango de celdas como archivo adjunto desde Excel con código VBA

Enviar un rango de celdas como cuerpo del mensaje desde Excel con código VBA


arrow blue right bubbleEnviar un rango de celdas como archivo adjunto desde Excel con código VBA

El siguiente código VBA puede ayudarte a enviar tu rango seleccionado como archivo adjunto en Excel. Por favor, sigue estos pasos:

1. Abre tu libro y luego mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. Haz clic en Insertar > Módulo, y pega el siguiente código en la Ventana del Módulo.

Código VBA: enviar un rango de celdas como archivo adjunto desde Excel

Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Nota: En el código anterior, puedes cambiar la siguiente información según tus necesidades.

  • .To = "skyyang@extendoffice.com"
  • .CC = ""
  • .BCC = ""
  • .Subject = "información de kte"
  • .Body = "hola, por favor revisa y lee este documento."

3. Luego, haz clic en la tecla F5 para ejecutar este código, y aparecerá un cuadro de diálogo para recordarte que selecciones el rango que deseas enviar. Ver captura de pantalla:

vba code to select the data range

4. Luego, haz clic en Aceptar, y aparecerá otro cuadro de diálogo; después de que la barra de progreso termine, haz clic en Permitir, y el rango específico de celdas se habrá enviado a tu destinatario como archivo adjunto.

click Allow to send the selected range as attachment

a screenshot of kutools for excel ai

Descubre la Magia de Excel con Kutools AI

  • Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
  • Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
  • Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
  • Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
  • Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
Potencia tus capacidades de Excel con herramientas impulsadas por IA. ¡Descarga Ahora y experimenta una eficiencia como nunca antes!

arrow blue right bubbleEnviar un rango de celdas como cuerpo del mensaje desde Excel con código VBA

Si deseas enviar un rango específico como parte del cuerpo del mensaje desde Excel, también puedes aplicar el siguiente código VBA para resolverlo.

1. Activa tu hoja de trabajo y mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. Haz clic en Insertar > Módulo, y pega el siguiente código en la Ventana del Módulo.

Código VBA: enviar un rango de celdas como cuerpo del mensaje desde Excel

Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Nota: En el código anterior, puedes cambiar la siguiente información según tus necesidades.

  • .Introduction = "Por favor, lee este correo electrónico."
  • .Item.To = "skyyang@extendoffice.com"
  • .Item.Subject = "información de kte"

3. Luego, haz clic en la tecla F5 para ejecutar este código, y aparecerá un cuadro de diálogo para recordarte que selecciones el rango que deseas enviar.

vba code to select the data range

4. Luego, haz clic en Aceptar, y aparecerá otro cuadro de diálogo; después de que la barra de progreso termine, haz clic en Permitir, y el rango específico de celdas se habrá enviado a tu destinatario como cuerpo del mensaje.

click Allow to send the selected range as email body

Notas:

1. Estos códigos solo están disponibles cuando Outlook es tu programa de correo.

2. Después de enviar la hoja de trabajo actual, puedes ir a tu Outlook para asegurarte de que el correo electrónico se haya enviado correctamente.


Artículos relacionados:

¿Cómo enviar solo una hoja de trabajo a través de Outlook desde Excel?

¿Cómo enviar el libro de trabajo actual a través de Outlook desde Excel?

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado 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 | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar 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 | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en 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 lleva la interfaz de pestañas a 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 nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!