Как да изпратите/изпратите по имейл диапазон от клетки през Outlook от Excel?
Случвало ли ви се е да се сблъскате с проблем, който след завършване на отчет в работен лист трябва да изпратите до диапазон от клетки в този работен лист, които съдържат някои важни данни до конкретния ви получател. Има ли някакви бързи начини да изпратите имейл на този диапазон от Excel, без да отваряте Outlook?
Изпратете диапазон от клетки като прикачен файл от Excel с VBA код
Изпратете диапазон от клетки като тяло от Excel с VBA код
Изпратете диапазон от клетки като прикачен файл от Excel с VBA код
Следният VBA код може да ви помогне да изпратите избрания от вас диапазон като прикачен файл в Excel. Моля, направете следното:
1. Отворете работната си книга и след това задръжте ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: изпратете диапазон от клетки като прикачен файл от 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
Забележка: В горния код можете да промените следната информация според вашите собствени нужди.
- .To = ""
- .CC = ""
- .BCC = ""
- .Subject = "информация за kte"
- .Body = "здравейте, моля, проверете и прочетете този документ."
3, След това кликнете F5 за да изпълните този код и ще изскочи поле за подкана, за да ви напомни да изберете диапазон, който искате да изпратите. Вижте екранна снимка:
4, След това кликнете OK, и ще се появи поле за подкана, след като лентата за напредък приключи, щракнете Позволетеи след това конкретният диапазон от клетки е изпратен на вашия получател като прикачен файл.
Изпратете диапазон от клетки като тяло от Excel с VBA код
Ако искате да изпратите конкретен диапазон като част от тялото на съобщението от Excel, можете също да приложите следния VBA код, за да го разрешите.
Kutools за Excel, с повече от 120 удобни функции, улеснява работата ви. | ||
1. Активирайте работния си лист и задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: изпратете диапазон от клетки като тяло от 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
Забележка: В горния код можете да промените следната информация според вашите нужди.
- .Introduction = "Моля, прочетете този имейл."
- .Item.To = ""
- .Item.Subject = "информация за kte"
3, След това кликнете F5 за да изпълните този код и ще изскочи поле за подкана, за да ви напомни да изберете диапазон, който искате да изпратите.
4. След това кликнете OK, и ще се появи поле за подкана, след като лентата за напредък приключи, щракнете Позволете, след което конкретният диапазон от клетки е изпратен до вашия получател като тяло на съобщението.
Забележки:
1. Тези кодове са налични само когато Outlook е вашата пощенска програма.
2. След като изпратите текущия работен лист, можете да отидете в Outlook, за да се уверите дали имейлът е изпратен успешно.
Още по темата:
Как да изпратите работен лист само през Outlook от Excel?
Как да изпратя текуща работна книга през Outlook от Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!