Отправка отдельных листов по электронной почте (Microsoft Excel)
Герман спросил, есть ли способ отправить один лист в книге как вложение в электронное письмо, не отправляя всю книгу. Короткий ответ: вы не можете — рабочий лист сам по себе не может существовать как «объект»
которые вы можете прикрепить к электронному письму. Вы можете отправлять файлы только в виде вложений в сообщения электронной почты, что означает, что для отправки вам потребуется файл книги.
Конечно, из одного листа легко создать рабочую тетрадь. Если вам нужно делать это только время от времени, то самый простой способ — выполнить следующие действия:
-
Щелкните правой кнопкой мыши вкладку рабочего листа, который хотите отправить по электронной почте.
-
В появившемся контекстном меню выберите «Переместить» или «Копировать». Excel отображает диалоговое окно «Перемещение или копирование». (См. Рис. 1.)
-
В раскрывающемся списке «В книгу» выберите «Новая книга».
-
Убедитесь, что установлен флажок «Создать копию».
-
Щелкните ОК.
На этом этапе вы должны увидеть новую книгу с единственным листом в ней — копию листа, который вы хотите отправить. Сохраните эту книгу и отправьте ее по электронной почте, и вы сделали то, что хотели. После того, как он будет отправлен по электронной почте, вы можете удалить книгу из своей системы, так как ваш рабочий лист также все еще находится в исходной книге.
Если вам нужно регулярно отправлять текущий лист кому-то по электронной почте, вы можете создать макрос, который выполнит эту задачу за вас. Создаваемый вами макрос будет отличаться в зависимости от используемой программы электронной почты. По этой причине в этом совете невозможно дать исчерпывающий ответ на основе макросов. Тем не менее, может быть поучительно предоставить пример макроса, который может отправлять электронную почту листу, используя 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 [Отправка отдельных листов по электронной почте]
.