Como enviar / enviar e-mail intervalo de células através do Outlook do Excel?
Você já sofreu com um problema que depois de terminar um relatório em uma planilha, e precisa enviar para um intervalo de células desta planilha que contém alguns dados importantes para o seu destinatário específico. Existe alguma maneira rápida de enviar esse intervalo por e-mail a partir do Excel sem abrir o Outlook?
Enviar intervalo de células como anexo do Excel com código VBA
Enviar intervalo de células como corpo do Excel com código VBA
Enviar intervalo de células como anexo do Excel com código VBA
O código VBA a seguir pode ajudá-lo a enviar o intervalo selecionado como anexo no Excel. Faça o seguinte:
1. Abra sua pasta de trabalho e mantenha pressionado o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.
2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.
Código VBA: enviar intervalo de células como anexo do 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
Note: No código acima, você pode alterar as seguintes informações conforme sua necessidade.
- .Para = ""
- .CC = ""
- .BCC = ""
- .Subject = "informações de kte"
- .Body = "olá, por favor, verifique e leia este documento."
3. Então clique F5 para executar esse código, e uma caixa de prompt aparecerá para lembrá-lo de selecionar um intervalo que deseja enviar. Veja a imagem:
4. Então clique OK, e uma caixa de prompt aparecerá, após o término da barra de progresso, clique Permitir, e o intervalo específico de células foi enviado ao destinatário como um anexo.
Enviar intervalo de células como corpo do Excel com código VBA
Se você deseja enviar um intervalo específico como parte do corpo da mensagem do Excel, também pode aplicar o seguinte código VBA para resolvê-lo.
Kutools for Excel, com mais de 120 funções úteis, tornam seus trabalhos mais fáceis. | ||
1. Ative sua planilha e mantenha pressionado o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.
2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.
Código VBA: enviar intervalo de células como corpo do 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
Nota: No código acima, você pode alterar as seguintes informações de acordo com sua necessidade.
- .Introduction = "Por favor, leia este e-mail."
- .Item.To = ""
- .Item.Subject = "informações de kte"
3. Então clique F5 para executar esse código, e uma caixa de prompt aparecerá para lembrá-lo de selecionar um intervalo que deseja enviar.
4. Então clique OK, e uma caixa de prompt aparecerá, após o término da barra de progresso, clique Permitire, em seguida, o intervalo específico de células foi enviado ao destinatário como corpo da mensagem.
Observações:
1. Esses códigos só estão disponíveis quando o Outlook é seu programa de e-mail.
2. Após enviar a planilha atual, você pode ir para o Outlook para verificar se o e-mail foi enviado com sucesso.
Artigos relacionados:
Como enviar planilha somente pelo Outlook do Excel?
Como enviar pasta de trabalho atual através do Outlook do Excel?
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!