Skip to main content

Come inviare ogni foglio a indirizzi email diversi da Excel?

Author: Xiaoyang Last Modified: 2025-08-06

Se hai una cartella di lavoro Excel con più fogli di lavoro, ognuno contenente un indirizzo email nella cella S1, potresti voler inviare ogni foglio come allegato separato al rispettivo destinatario. Questo compito può essere noioso se fatto manualmente, specialmente quando si ha a che fare con un gran numero di fogli. In questo tutorial, ti mostreremo come utilizzare il codice VBA per inviare automaticamente ogni foglio di lavoro del tuo file Excel come allegato all'indirizzo email specificato nella cella S1 di ogni foglio.


Invia ogni foglio a indirizzi email diversi da Excel con il codice VBA

Il seguente codice VBA ti permetterà di inviare ogni foglio di lavoro come allegato al destinatario corrispondente elencato nella cella S1. Segui questi passaggi:

1. Premi contemporaneamente i tasti Alt+ F11 per aprire la finestra Microsoft Visual Basic for Applications.

2. Successivamente, clicca su Inserisci > Modulo, e copia e incolla il seguente codice VBA nella finestra.

Codice VBA: Invia ogni foglio come allegato a indirizzi email diversi

Sub Mail_Every_Worksheet()
'Updateby ExtendOffice
  Dim xWs As Worksheet
  Dim xWb As Workbook
  Dim xFileExt As String
  Dim xFileFormatNum As Long
  Dim xTempFilePath As String
  Dim xFileName As String
  Dim xOlApp As Object
  Dim xMailObj As Object
  On Error Resume Next
  With Application
      .ScreenUpdating = False
      .EnableEvents = False
  End With
  xTempFilePath = Environ$("temp") & "\"
  If Val(Application.Version) < 12 Then
    xFileExt = ".xls": xFileFormatNum = -4143
  Else
    xFileExt = ".xlsm": xFileFormatNum = 52
  End If
  Set xOlApp = CreateObject("Outlook.Application")
  For Each xWs In ThisWorkbook.Worksheets
    If xWs.Range("S1").Value Like "?*@?*.?*" Then
      xWs.Copy
      Set xWb = ActiveWorkbook
      xFileName = xWs.Name & " of " _
                   & VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & " "
      Set xMailObj = xOlApp.CreateItem(0)
      xWb.Sheets.Item(1).Range("S1").Value = ""
      With xWb
        .SaveAs xTempFilePath & xFileName & xFileExt, FileFormat:=xFileFormatNum
        With xMailObj
        'specify the CC, BCC, Subject, Body below
            .To = xWs.Range("S1").Value
            .CC = ""
            .BCC = ""
            .Subject = "This is the Subject line"
            .Body = "Hi there"
            .Attachments.Add xWb.FullName
            .Display
        End With
        .Close SaveChanges:=False
      End With
      Set xMailObj = Nothing
      Kill xTempFilePath & xFileName & xFileExt
    End If
  Next
  Set xOlApp = Nothing
  With Application
      .ScreenUpdating = True
      .EnableEvents = True
  End With
End Sub
Nota: Nel codice sopra:
  • S1 è la cella che contiene l'indirizzo email a cui vuoi inviare l'email. Se i tuoi indirizzi email sono in una cella diversa, come A1, puoi modificare il codice per riflettere tale cambiamento.
  • Puoi specificare CC, CCN, Oggetto, Corpo nel codice;
  • Per inviare l'email direttamente senza aprire la finestra del nuovo messaggio, devi cambiare .Display in .Send.

A screenshot of the VBA code window for sending each sheet from Excel to a different email address in cell S1

3. Successivamente, premi il tasto F5 per eseguire questo codice, e ogni foglio viene inserito automaticamente nella finestra del nuovo messaggio come allegato, vedi screenshot:

A screenshot of new email messages in Outlook, each with an attached Excel sheet sent to different recipients

4. Infine, clicca sul pulsante Invia per inviare ogni email una per una.


Kutools per Excel: Invia Email Personalizzate Facilmente con un Solo Clic!

Send Personalized Emails feature

Stanco di inviare email ai clienti una per una? Con la funzione “Invia Email” di Kutools per Excel, la comunicazione diventa più veloce e professionale! Basta preparare un foglio di lavoro Excel con nomi, indirizzi email, codici di registrazione e inserire segnaposto — il sistema genererà automaticamente email personalizzate e ne invierà centinaia con un solo clic. Dì addio al lavoro ripetitivo!

  • 💡 I segnaposto dinamici (ad esempio, nome, codice di registrazione) riempiono automaticamente contenuti personalizzati per ogni destinatario, garantendo che ogni email sembri unica e su misura.
  • 📎 Allega file personalizzati per una consegna precisa
  • 📤 Si integra perfettamente con Outlook per un invio sicuro e affidabile
  • 📝 Salva e riutilizza modelli di email per massimizzare l'efficienza
  • 🎨 Editor WYSIWYG facile da usare
  • 🖋 Usa la tua firma di Outlook — nessuna configurazione aggiuntiva, basta premere invia!
  • Ottieni Ora Kutools Per Excel!

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e genera grafici | Richiama Funzioni avanzate
Funzionalità popolari: Trova, evidenzia o identifica duplicati | Elimina righe vuote | Combina colonne o celle senza perdere dati | Arrotonda
Super RICERCA.VERT: Ricerca con criteri multipli    Ricerca valori multipli  |   Ricerca su più fogli   |   Corrispondenza approssimativa ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa a selezione multipla….
Gestione colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia lo stato di visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro & Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email da elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
I15 migliori kit di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule utili (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci immagine dal percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti per unire & dividere (Unione avanzata righe, Dividi celle, ...) | ...e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. 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 su Office, rendendo il tuo lavoro molto più semplice

  • Abilita la modifica a schede e la lettura 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 ti fa risparmiare centinaia di clic ogni giorno!