Saltar al contenido principal

¿Cómo enviar un correo electrónico copiando y pegando un rango específico en el cuerpo del correo electrónico en Excel?

En muchos casos, un rango específico de contenido en la hoja de cálculo de Excel puede ser útil en su comunicación por correo electrónico. En este artículo, presentaremos un método para enviar un correo electrónico con un rango especificado pegado en el cuerpo del correo electrónico directamente en Excel.

Envíe un correo electrónico con un rango especificado pegado en el cuerpo del correo electrónico en Excel
Envíe correos electrónicos con un rango específico pegado en el cuerpo del correo electrónico con una herramienta increíble

Más tutoriales para enviar por correo en Excel ...


Envíe un correo electrónico con un rango especificado pegado en el cuerpo del correo electrónico en Excel

El siguiente código VBA puede ayudarlo a copiar un rango y pegarlo en el cuerpo de un correo electrónico de Outlook directamente en Excel. Haz lo siguiente.

1. En la hoja de trabajo que contiene el rango que necesita copiar, presione el otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. En la apertura Microsoft Visual Basic para aplicaciones ventana, haga clic en Herramientas > Referencias como se muestra a continuación.

3. En el Referencias - VBAProject cuadro de diálogo, busque y marque el Biblioteca de objetos de Microsoft Outlook opción, y luego haga clic en la OK del botón.

4. Hacer clic en recuadro > Módulo, luego copie y pegue el siguiente código VBA en la ventana del Módulo.

Código de VBA: envíe un correo electrónico con un rango especificado pegado en el cuerpo del correo electrónico en Excel

Sub Send_Email()
'Updated by Extendoffice 20200119
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xEmailBody As String
    Dim xMailOut As Outlook.MailItem
    Dim xOutApp As Outlook.Application    
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xRg.Rows.Count
        For J = 1 To xRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xRg.Cells(I, J).value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = ""
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Notas:

  • 1). Cambie el cuerpo del correo electrónico en línea xEmailBody = "Hola" & vbLf & vbLf & "cuerpo del mensaje que desea agregar" & vbLf & vbLf & xEmailBody & vbNewLine como necesites.
  • 2). Especifique el destinatario y el asunto de su correo electrónico (.A = y .Subject = "prueba") líneas en el código.

5. presione el F5 clave para ejecutar el código. En el apareciendo Kutools for Excel cuadro de diálogo, seleccione el rango que necesita pegar en el cuerpo del correo electrónico y luego haga clic en el OK botón. Ver captura de pantalla:

6. Ahora se crea un correo electrónico con el destinatario, el asunto, el cuerpo y el rango de Excel seleccionados, haga clic en el Enviar para enviar este correo electrónico. Vea la captura de pantalla que se muestra.

Note: El código VBA solo funciona cuando usa Outlook como su programa de correo electrónico.


Envíe correos electrónicos con un rango específico pegado en el cuerpo del correo electrónico con una herramienta increíble

Si no usa Outlook y aún desea enviar correos electrónicos directamente en Excel con un rango específico de datos pegados en su interior, le recomiendo encarecidamente el Enviar correos electrónicos utilidad de Kutools for Excel para ti. Con esta función, solo necesita configurar el servidor saliente de una dirección de correo electrónico y luego enviar correos electrónicos en Excel directamente a través de esta dirección de correo electrónico en el futuro.

Antes de aplicar Kutools for Excel, Por favor descargarlo e instalarlo en primer lugar.

1. En primer lugar, debe preparar una lista de correo con los campos necesarios.

  • Tips: La lista de correo debe contener al menos 2 filas, y la primera fila deben ser los encabezados (suponiendo que desee enviar correos electrónicos a dos direcciones de correo electrónico en Excel, escriba estas dos direcciones de correo electrónico con el encabezado "Correo electrónico" como se muestra en la captura de pantalla siguiente ).
  • Alternativamente, puede crear fácilmente una lista de correo con el Crear lista de distribución .

2. Seleccione el rango en el que agregará los datos al cuerpo del correo electrónico y presione el botón Ctrl + C teclas para copiarlo.

3. Seleccione toda la lista de correo (incluya encabezados), haga clic en Kutools Más > Enviar correos electrónicos. Ver captura de pantalla:

4. Entonces el Enviar correos electrónicos aparece el cuadro de diálogo.

  • 4.1) Los elementos de la lista de correo seleccionada se completan en los campos correspondientes (puede agregar más campos a la lista de correo según lo necesite);
  • 4.2) Haga clic en el cuadro del cuerpo del correo electrónico, presione el Ctrl + V teclas para pegar los datos del rango seleccionado en él. Después de eso, agregue otro contenido que necesite;
  • 4.3 Desmarque la Envíe correos electrónicos a través de Outlook caja;
  • 2.4) Haga clic en Configuración del servidor saliente botón. Ver captura de pantalla:

5. Entonces el Configuración del servidor saliente (SMTP): nuevo esquema aparece el cuadro de diálogo. Complete la dirección de correo electrónico con la configuración del servidor, especifique una carpeta para guardar todos los correos enviados después de marcar Guardar los correos electrónicos enviados a cuadro, y luego haga clic en el OK para guardar la configuración

6. Cuando vuelva a la Enviar correos electrónicos cuadro de diálogo, haga clic en Enviar botón para enviar el correo electrónico.

A partir de ahora, puede enviar correos electrónicos con esta función en Excel directamente.

  Si desea tener una prueba gratuita (30 días) de esta utilidad, haga clic para descargarloy luego vaya a aplicar la operación según los pasos anteriores.


Artículos relacionados:

Enviar correo electrónico a direcciones de correo electrónico especificadas en las celdas de Excel
Supongamos que tiene una lista de direcciones de correo electrónico y desea enviar un mensaje de correo electrónico a estas direcciones de correo electrónico de forma masiva directamente en Excel. ¿Cómo lograrlo? Este artículo le mostrará los métodos para enviar correos electrónicos a varias direcciones de correo electrónico que se especifican en las celdas de Excel.

Inserte la firma de Outlook al enviar un correo electrónico en Excel
Suponiendo que desea enviar un correo electrónico directamente en Excel, ¿cómo puede agregar la firma predeterminada de Outlook en este correo electrónico? Este artículo proporciona dos métodos para ayudarlo a agregar la firma de Outlook al enviar correo electrónico en Excel.

Envíe un correo electrónico con varios archivos adjuntos adjuntos en Excel
Este artículo habla sobre el envío de un correo electrónico a través de Outlook con varios archivos adjuntos adjuntos en Excel.

Envíe un correo electrónico si se ha cumplido la fecha de vencimiento en Excel
Por ejemplo, si la fecha de vencimiento en la columna C es menor o igual a 7 días (la fecha actual es 2017/9/13), envíe un recordatorio por correo electrónico al destinatario especificado en la columna A con el contenido especificado en la columna B. Cómo ¿alcanzarlo? Este artículo proporcionará un método VBA para tratarlo en detalle.

Envíe correos electrónicos automáticamente según el valor de la celda en Excel
Supongamos que desea enviar un correo electrónico a través de Outlook a un destinatario determinado en función de un valor de celda específico en Excel. Por ejemplo, cuando el valor de la celda D7 en una hoja de trabajo es mayor que 200, se crea automáticamente un correo electrónico. Este artículo presenta un método VBA para que pueda resolver rápidamente este problema.

Más tutoriales para enviar por correo en Excel ...

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear 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  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

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

Descripción


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!
Comments (22)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail, I have the same issue, could you see if you could update it please, otherwise this is excellent.
Many thanks
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
Hi Andy Mitchell,
If you want to maintain the format of the table, the following VBA script can do you a favor. Please give it a try. Thank you.
Sub Send_Email()
'Updated by Extendoffice 20220616
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "Test"
        .To = ""
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function
This comment was minimized by the moderator on the site
This worked perfectly, thank you so much.
I can now add my spin on it to get it doing what I need.
This comment was minimized by the moderator on the site
Hi Paul Johnson,

Very happy to help you solve the problem. Have a good day at work.
This comment was minimized by the moderator on the site
hello,
can you help me on below
I have create excel sheet & updated 10 supplier mail detailI have send mail through excel to all 10 supplier with individual sheet attachment with individual mail.
I want to paste excel data in outlook body instead of attachment in mail
can any one help me
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range, I want to select multiple pivots in the excel.
can you please help me.
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range manually, I want to select the range automatically.
This comment was minimized by the moderator on the site
Hi Raman,
In the below code, please replace the range "A1:C5" in line Set xRg = Range("A1:C5") with your own range.

Sub Send_Email()
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xEmailBody As String
Dim xMailOut As Outlook.MailItem
Dim xOutApp As Outlook.Application
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Range("A1:C5")
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
For I = 1 To xRg.Rows.Count
For J = 1 To xRg.Columns.Count
xEmailBody = xEmailBody & " " & xRg.Cells(I, J).Value
Next
xEmailBody = xEmailBody & vbNewLine
Next
xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
With xMailOut
.Subject = "Test"
.To = ""
.Body = xEmailBody
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Hi experts, Do we have updates on how the format maintained?
This comment was minimized by the moderator on the site
Hi Ther,
Can't figure it out. Sorry for that.
This comment was minimized by the moderator on the site
i am seeing a compile error (User-defined type not defined". Please help me out to overcome this.
This comment was minimized by the moderator on the site
Hi,
Please get into the Reference window by clicking Tools > references. Scroll down to find and check the Microsoft Outlook Object Library box and click the OK button to finish the setting.
This comment was minimized by the moderator on the site
this is pasting as a text. Kindly suggest how to send the table or the same format which is copied from the excel.
This comment was minimized by the moderator on the site
Code to send automatically after selecting after ok
This comment was minimized by the moderator on the site
Hi
This code is vary excellent, by using the code i have completed my 90% of my project.
I have same issue as mentioned by Anirudh that is table formatting. How can i format the table in email.
Please help me......
This comment was minimized by the moderator on the site
Good Day,
The problem can't be solved yet. Sorry for the inconvenience and thank you for your comment.
This comment was minimized by the moderator on the site
Hi, Is there any update on below.......
This comment was minimized by the moderator on the site
Hi, Also I Wanted code for "Filter by Date".
I am working on project, on that project I wanted to filter the data by the date, actually we have filter/hide the and last 05 days to current date data and we have highlight all other data.
Please help me to complete this project.
Your help is very great-full for me.
This comment was minimized by the moderator on the site
This is great. It is working as expected. The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations