Герман спросил, есть ли способ отправить один лист в книге как вложение в электронное письмо, не отправляя всю книгу. Короткий ответ: вы не можете — рабочий лист сам по себе не может существовать как «объект»

которые вы можете прикрепить к электронному письму. Вы можете отправлять файлы только в виде вложений в сообщения электронной почты, что означает, что для отправки вам потребуется файл книги.

Конечно, из одного листа легко создать рабочую тетрадь. Если вам нужно делать это только время от времени, то самый простой способ — выполнить следующие действия:

  1. Щелкните правой кнопкой мыши вкладку рабочего листа, который хотите отправить по электронной почте.

  2. В появившемся контекстном меню выберите «Переместить» или «Копировать». Excel отображает диалоговое окно «Перемещение или копирование». (См. Рис. 1.)

  3. В раскрывающемся списке «В книгу» выберите «Новая книга».

  4. Убедитесь, что установлен флажок «Создать копию».

  5. Щелкните ОК.

На этом этапе вы должны увидеть новую книгу с единственным листом в ней — копию листа, который вы хотите отправить. Сохраните эту книгу и отправьте ее по электронной почте, и вы сделали то, что хотели. После того, как он будет отправлен по электронной почте, вы можете удалить книгу из своей системы, так как ваш рабочий лист также все еще находится в исходной книге.

Если вам нужно регулярно отправлять текущий лист кому-то по электронной почте, вы можете создать макрос, который выполнит эту задачу за вас. Создаваемый вами макрос будет отличаться в зависимости от используемой программы электронной почты. По этой причине в этом совете невозможно дать исчерпывающий ответ на основе макросов. Тем не менее, может быть поучительно предоставить пример макроса, который может отправлять электронную почту листу, используя Outlook в качестве почтовой программы.

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

Обратите внимание, что макрос эффективно выполняет то, что было сделано на предыдущих этапах:

он копирует рабочий лист в новую книгу, а затем отправляет эту книгу по электронной почте. Затем он удаляет книгу и возвращает вас к обычному использованию Excel.

Макрос сохраняет временную книгу (отправляемую по электронной почте) на диск C :. Если вы предпочитаете сохранить книгу в другом месте (или если системные ограничения не позволяют вам сохранять файлы в корневой каталог вашей системы), просто измените расположение в двух строках кода, которые ссылаются на диск C :.

У использования подхода, описанного в этом совете, есть один потенциальный недостаток: когда вы создаете копию рабочего листа в новой книге, Excel может делать забавные вещи с некоторыми ссылками, которые могут быть на скопированном рабочем листе. Например, предположим, что вы хотите скопировать и отправить по электронной почте Sheet1 из исходной книги. Однако Sheet1 включает в себя некоторые ссылки в формулах на ячейки в Sheet2 и Sheet3. Когда вы делаете копию Sheet1 в новую книгу, Excel сохраняет эти ссылки обратно на листы в исходной книге. Хотя скопированный Sheet1 можно отправить по электронной почте кому-то другому, когда этот человек попытается открыть его, ссылки больше не будут работать должным образом, потому что у него или нее нет ссылки на исходную книгу.

Есть три возможных решения этого. Первый, очевидно, состоит в том, чтобы убедиться, что вы отправляете по электронной почте не один лист в новой книге, а все листы, которые могут понадобиться получателю. Второе решение — использовать методы копирования и вставки для вставки значений в новую книгу.

Наконец, вы можете скопировать исходный рабочий лист, а затем в копии найти все внешние ссылки и удалить их.

Если вы ищете более подробное обсуждение того, как отправить рабочий лист по электронной почте с помощью различных программ, то вам обязательно нужно посетить следующую веб-страницу:

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

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (8508) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Sending_Single_Worksheets_via_E-mail [Отправка отдельных листов по электронной почте].