Come inviare / spedire un intervallo di celle tramite Outlook da Excel?
Ti è mai capitato di dover affrontare il problema di aver terminato un report in un foglio di lavoro e di dover inviare un intervallo di celle contenente dati importanti a un destinatario specifico? Esistono metodi rapidi per inviare questo intervallo direttamente da Excel senza aprire Outlook?
Invia un intervallo di celle come allegato da Excel con il codice VBA
Invia un intervallo di celle come corpo del messaggio da Excel con il codice VBA
Invia un intervallo di celle come allegato da Excel con il codice VBA
Il seguente codice VBA può aiutarti a inviare l'intervallo selezionato come allegato in Excel. Procedi come segue:
1. Apri la tua cartella di lavoro e tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella Finestra del Modulo.
Codice VBA: invia un intervallo di celle come allegato da 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 = "skyyang@extendoffice.com"
.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
Nota: Nel codice sopra, puoi modificare le seguenti informazioni secondo le tue esigenze.
- .To = "skyyang@extendoffice.com"
- .CC = ""
- .BCC = ""
- .Subject = "informazioni di kte"
- .Body = "ciao, per favore controlla e leggi questo documento."
3. Quindi premi il tasto F5 per eseguire il codice, e apparirà una finestra di dialogo che ti chiederà di selezionare l'intervallo che desideri inviare. Vedi screenshot:
4. Clicca su OK, e apparirà un'altra finestra di dialogo; dopo che la barra di avanzamento avrà finito, clicca su Consenti, e l'intervallo specifico di celle verrà inviato al tuo destinatario come allegato.

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Invia un intervallo di celle come corpo del messaggio da Excel con il codice VBA
Se vuoi inviare un intervallo specifico come parte del corpo del messaggio da Excel, puoi anche applicare il seguente codice VBA per risolvere il problema.
1. Attiva il tuo foglio di lavoro e tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella Finestra del Modulo.
Codice VBA: invia un intervallo di celle come corpo del messaggio da 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 = "skyyang@extendoffice.com"
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub
Nota: Nel codice sopra, puoi modificare le seguenti informazioni secondo le tue esigenze.
- .Introduction = "Per favore leggi questa email."
- .Item.To = "skyyang@extendoffice.com"
- .Item.Subject = "informazioni di kte"
3. Quindi premi il tasto F5 per eseguire il codice, e apparirà una finestra di dialogo che ti chiederà di selezionare l'intervallo che desideri inviare.
4. Clicca su OK, e apparirà un'altra finestra di dialogo; dopo che la barra di avanzamento avrà finito, clicca su Consenti, e l'intervallo specifico di celle verrà inviato al tuo destinatario come corpo del messaggio.
Note:
1. Questi codici sono disponibili solo quando Outlook è impostato come programma di posta.
2. Dopo aver inviato il foglio di lavoro corrente, puoi andare su Outlook per verificare se l'email è stata inviata correttamente.
Articoli correlati:
Come inviare solo un foglio di lavoro tramite Outlook da Excel?
Come inviare la cartella di lavoro corrente tramite Outlook da Excel?
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!