¿Cómo enviar / enviar por correo electrónico un rango de celdas a través de Outlook desde Excel?
¿Alguna vez ha sufrido un problema que después de terminar un informe en una hoja de trabajo y necesita enviar a un rango de celdas en esta hoja de trabajo que contienen algunos datos importantes para su destinatario específico? ¿Hay alguna forma rápida de enviar por correo electrónico este rango desde Excel sin abrir Outlook?
Envíe el rango de celdas como archivo adjunto desde Excel con código VBA
Envíe el rango de celdas como cuerpo desde Excel con código VBA
Envíe el rango de celdas como archivo adjunto desde Excel con código VBA
El siguiente código VBA puede ayudarlo a enviar su rango seleccionado como archivo adjunto en Excel. Por favor haz lo siguiente:
1. Abra su libro de trabajo y luego mantenga presionada la ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código VBA: envíe el 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 = ""
.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
Note: En el código anterior, puede cambiar la siguiente información según sus propias necesidades.
- .Para = ""
- .CC = ""
- .BCC = ""
- .Subject = "información de kte"
- .Body = "hola, por favor revise y lea este documento".
3. Luego haga clic F5 para ejecutar este código, y aparecerá un cuadro emergente para recordarle que seleccione un rango que desea enviar. Ver captura de pantalla:
4. Luego haga clic OK, y aparecerá un cuadro de aviso, después de que finalice la barra de progreso, haga clic en Permitir, y luego el rango específico de celdas se ha enviado a su destinatario como un archivo adjunto.
Envíe el rango de celdas como cuerpo desde Excel con código VBA
Si desea enviar un rango específico como parte del cuerpo del mensaje desde Excel, también puede aplicar el siguiente código VBA para resolverlo.
Kutools for Excel, con más de 120 funciones prácticas, facilita su trabajo. | ||
1. Active su hoja de trabajo y mantenga presionada la ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código de VBA: envíe el rango de celdas como cuerpo 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 = ""
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub
Nota: En el código anterior, puede cambiar la siguiente información según sus necesidades.
- .Introduction = "Lea este correo electrónico".
- .Artículo.Para = ""
- .Item.Subject = "información de kte"
3. Luego haga clic F5 para ejecutar este código, y aparecerá un cuadro emergente para recordarle que seleccione un rango que desea enviar.
4. A continuación, haga clic en OK, y aparecerá un cuadro de aviso, después de que finalice la barra de progreso, haga clic en Permitir, y luego el rango específico de celdas se ha enviado a su destinatario como cuerpo del mensaje.
Notas:
1. Estos códigos solo están disponibles cuando Outlook es su programa de correo.
2. Después de enviar la hoja de trabajo actual, puede ir a su Outlook para asegurarse de que el correo electrónico se haya enviado correctamente.
Artículos relacionados:
¿Cómo enviar una hoja de trabajo solo 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 de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite 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 de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!