German preguntó si hay una manera de enviar una hoja de trabajo en un libro de trabajo como un archivo adjunto de correo electrónico sin enviar el libro de trabajo completo. La respuesta corta es que no puede; una hoja de trabajo, por sí misma, no puede existir como una «entidad»

que puede adjuntar a un correo electrónico. Solo puede enviar archivos como archivos adjuntos a correos electrónicos, lo que significa que debe tener un archivo de libro de trabajo para enviar.

Por supuesto, es fácil hacer un libro de trabajo a partir de una sola hoja de trabajo. Si solo necesita hacer esto de vez en cuando, la forma más sencilla es seguir estos pasos:

  1. Haga clic con el botón derecho en la pestaña de la hoja de trabajo que desea enviar por correo electrónico.

  2. En el menú contextual resultante, elija Mover o Copiar. Excel muestra el cuadro de diálogo Mover o Copiar. (Ver figura 1)

  3. Usando la lista desplegable Para reservar, elija Nuevo libro.

  4. Asegúrese de que la casilla de verificación Crear una copia esté seleccionada.

  5. Haga clic en Aceptar.

En este punto, debería ver un nuevo libro de trabajo con una sola hoja de trabajo, una copia de la hoja de trabajo que desea enviar. Guarde este libro y envíelo por correo electrónico, y habrá logrado lo que quería hacer. Una vez que se envía por correo electrónico, puede eliminar el libro de trabajo de su sistema, ya que su hoja de trabajo también se encuentra en el libro de trabajo original.

Si necesita enviar por correo electrónico de forma rutinaria la hoja de trabajo actual a otra persona, es posible que desee crear una macro que haga la tarea por usted. La macro que cree variará, dependiendo del programa de correo electrónico que esté utilizando. Por esta razón, no es posible proporcionar una respuesta completa basada en macros en este consejo. Sin embargo, puede resultar instructivo proporcionar un ejemplo de una macro que pueda enviar por correo electrónico una hoja de trabajo utilizando Outlook como programa de correo.

Sub EmailWithOutlook()

Dim oApp As Object     Dim oMail As Object     Dim WB As Workbook     Dim FileName As String     Dim wSht As Worksheet     Dim shtName As String

Application.ScreenUpdating = False

' Make a copy of the active worksheet     ' and save it to a temporary file     ActiveSheet.Copy     Set WB = ActiveWorkbook

FileName = WB.Worksheets(1).Name     On Error Resume Next     Kill "C:\" & FileName     On Error GoTo 0     WB.SaveAs FileName:="C:\" & FileName

'Create and show the Outlook mail item     Set oApp = CreateObject("Outlook.Application")

Set oMail = oApp.CreateItem(0)

With oMail         'Uncomment the line below to hard code a recipient         '.To = "[email protected]"

'Uncomment the line below to hard code a subject         '.Subject = "Subject Line"

'Uncomment the lines below to hard code a body         '.body = "Dear John" & vbCrLf & vbCrLf & _           '"Here is the file you asked for"

.Attachments.Add WB.FullName         .Display     End With

'Delete the temporary file     WB.ChangeFileAccess Mode:=xlReadOnly     Kill WB.FullName     WB.Close SaveChanges:=False

'Restore screen updating and release Outlook     Application.ScreenUpdating = True     Set oMail = Nothing     Set oApp = Nothing End Sub

Tenga en cuenta que la macro hace efectivamente lo que se hizo en los pasos anteriores:

copia la hoja de trabajo en un nuevo libro de trabajo y luego lo envía por correo electrónico. Luego, elimina el libro y lo regresa a su uso normal de Excel.

La macro guarda el libro de trabajo temporal (el que se envía por correo electrónico) en la unidad C :. Si prefiere guardar el libro de trabajo en otro lugar (o si las restricciones de su sistema le impiden guardar archivos en el directorio raíz de su sistema), simplemente cambie la ubicación en las dos líneas de código que hacen referencia a la unidad C :.

Existe un posible inconveniente de utilizar el enfoque detallado en este consejo: cuando crea una copia de la hoja de trabajo en un nuevo libro de trabajo, Excel puede hacer algunas cosas divertidas con algunas referencias que pueden estar en la hoja de trabajo copiada. Por ejemplo, digamos que desea copiar y enviar por correo electrónico la Hoja1 desde el libro de trabajo original. Sin embargo, Sheet1 incluye algunas referencias, en fórmulas, a celdas en Sheet2 y Sheet3. Cuando realiza la copia de Sheet1 en el libro nuevo, Excel mantiene esas referencias a las hojas del libro original. Si bien la Hoja1 copiada se puede enviar por correo electrónico a otra persona, cuando esa persona intenta abrirla, las referencias ya no funcionarán correctamente porque no se hace referencia al libro original.

Hay tres posibles soluciones para esto. El primero, obviamente, es asegurarse de no enviar por correo electrónico una sola hoja de trabajo en el nuevo libro de trabajo, sino todas las hojas de trabajo que el destinatario pueda necesitar. La segunda solución es utilizar técnicas de copiar y pegar para pegar valores en el nuevo libro de trabajo.

Finalmente, puede copiar la hoja de trabajo original y luego, en la copia, buscar todas las referencias externas y eliminarlas.

Si está buscando una discusión más profunda sobre cómo enviar una hoja de trabajo por correo electrónico usando varios programas, definitivamente querrá visitar la siguiente página web:

http://www.rondebruin.nl/win/section1.htm

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (8508) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Sending_Single_Worksheets_via_E-mail [Envío de hojas de trabajo individuales por correo electrónico].