¿Cómo enviar o adjuntar un rango de celdas por correo electrónico a través de Outlook desde Excel?
¿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
Enviar 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:
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.

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.
Enviar 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.
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.
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
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!