Note: The other languages of the website are Google-translated. Back to English

Come inviare un'e-mail tramite Outlook quando la cartella di lavoro viene salvata in Excel?

Questo articolo parla dell'invio di un'e-mail tramite Outlook quando una cartella di lavoro specifica viene salvata in Excel. Si prega di fare come mostra il tutorial.

Invia un'e-mail tramite Outlook quando la cartella di lavoro viene salvata con codice VBA


Invia un'e-mail tramite Outlook quando la cartella di lavoro viene salvata con codice VBA

Per inviare un'e-mail tramite Outlook quando la cartella di lavoro viene salvata in Excel, eseguire le seguenti operazioni.

1. Salvare inizialmente la cartella di lavoro come cartella di lavoro con attivazione macro di Excel. Clic Compila il > Salva con nome. Nel Salva con nome finestra di dialogo, selezionare una cartella in cui salvare la cartella di lavoro, denominarla nella casella Nome file, selezionare Cartella di lavoro abilitata per Excel dal Salva come tipo elenco a discesa, quindi fare clic su Risparmi pulsante. Vedi screenshot:

2. Aprire la cartella di lavoro con attivazione macro di Excel salvata in questo momento, premere il tasto altro + F11 tasti contemporaneamente per aprire il file Microsoft Visual Basic, Applications Edition finestra.

2. Nel Microsoft Visual Basic, Applications Edition finestra, fare doppio clic Questa cartella di lavoro nella barra di sinistra, quindi copia e incolla il codice VBA sottostante nel file Questa cartella di lavoro finestra del codice. Vedi screenshot:

Codice VBA: invia e-mail quando la cartella di lavoro viene salvata

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Note:: Sostituire il file Email con l'indirizzo email del destinatario in linea .To = "Indirizzo e-mail"e cambia i campi Cc, Oggetto e corpo nel codice VBA di cui hai bisogno.

3. premi il altro + Q contemporaneamente i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.

D'ora in poi, quando aggiorni la cartella di lavoro e la salvi, verrà creata automaticamente un'e-mail con la cartella di lavoro aggiornata allegata. Fare clic sul file Invia pulsante per inviare l'email. Vedi screenshot:

Note:: Il codice VBA funziona solo quando utilizzi Outlook come programma di posta elettronica.


Articoli correlati:


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • 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, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (17)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Come automatizzare la notifica e-mail in VBA in base all'intervallo di date, senza dover vedere il pop-up per l'autorizzazione di sicurezza per consentire a VBA di inviare l'e-mail.
Questo commento è stato fatto dal moderatore sul sito
Grazia. Consulta: utilizando esta misma rutina, como podría enviar el correo a un correo específico dependiendo el valor de otra celda?
Questo commento è stato fatto dal moderatore sul sito
Cari tutti, vorrei chiedere come allegare un collegamento funzionale a una determinata cartella sul server, se incollo il collegamento, appare nella cartella di lavoro proprio come testo normale e quindi non funziona nell'e-mail ricevuta, come posso trasformarlo in un collegamento, in modo che i destinatari possano fare clic su di esso?
Vorrei usare in questo modo invece di inviare il file excel allegato.
Grazie per la consulenza
Questo commento è stato fatto dal moderatore sul sito
Ciao Robert,
Spiacenti, non posso aiutarti con questo, benvenuto per pubblicare qualsiasi domanda su Excel nel nostro forum: https://www.extendoffice.com/forum.html. Riceverai più supporti di Excel dai nostri fan professionisti o da altri fan di Excel.
Questo commento è stato fatto dal moderatore sul sito
L'ho messo nel corpo dell'e-mail e ha funzionato per me ...
"file:///Z:\dir1\dir2\dir3\Test1.xlsm"
Questo commento è stato fatto dal moderatore sul sito
Ciao, bell'articolo! Una cosa che ho cercato di ottenere con questo è allegare lo stato corrente della cartella di lavoro all'e-mail.

Al momento, invia solo lo stato originale del file e non include le modifiche che l'utente avrebbe apportato.

Qualche idea su come implementarlo usando una macro?
Questo commento è stato fatto dal moderatore sul sito
Ciao Chris,
Il codice è stato aggiornato con il problema risolto, per favore prova. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Ciao Chris,

Mi sono imbattuto nello stesso problema.
Attualmente i codici sono utilizzati nel modulo "prima di salvare".
Ciò significa che l'e-mail invierà il foglio di calcolo che è stato prima salvato.

C'è un altro modulo "aftersave".
Ho applicato il codice in questo modulo e ha funzionato come un incantesimo.
Questo commento è stato fatto dal moderatore sul sito
Come verrebbe gestito per un documento di Office 365. Si sta salvando automaticamente.
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per crittografare automaticamente l'e-mail automatizzata?
Questo commento è stato fatto dal moderatore sul sito
Ciao Mike,
Siamo spiacenti, non posso aiutare a risolvere questo problema. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Ciao! Grazie mille per questa linea guida :-) Vorrei fare qualcosa di più in questo codice - inviare un'e-mail in base ai paesi. Significa che devo creare comandi con if e select. Giusto? Ho già eliminato l'allegato dall'e-mail. Vorrei invece aggiungere il collegamento con il percorso nella cartella. Ma quando la macro viene eseguita, il comando non è valido :-(
Apprezzo ogni aiuto come aggiungerlo lì.
Questo commento è stato fatto dal moderatore sul sito
Ciao - Come posso includere i dati del cellulare nel campo dell'e-mail "cc"?
Questo commento è stato fatto dal moderatore sul sito
Ciao Brent,
Supponendo di voler includere il valore nella cella a7 nel campo "cc" dell'e-mail, provare il VBA seguente.

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

'Aggiornato da Extendoffice 20200628

Dim xOutApp come oggetto

Dim xMailItem come oggetto

Dim xName come stringa

On Error Resume Next

Imposta xOutApp = CreateObject ("Outlook.Application")

Imposta xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

Con xMailItem

.To = "Indirizzo e-mail"

.CC = Intervallo("a7").Valore


.Subject = "La cartella di lavoro è stata salvata"

.Body = "Ciao" & Chr(13) & Chr(13) & "Il file è ora aggiornato."

.Allegati.Aggiungi xName

.Schermo

'.Spedire

Fine Con

Imposta xMailItem = Niente

Imposta xOutApp = Niente

End Sub
Questo commento è stato fatto dal moderatore sul sito
Cari tutti, qualcuno può aiutarmi, sono un principiante nella codifica VBA, ho apportato alcune modifiche, ma come posso farlo inviare e-mail se la cartella di lavoro è salvata e se il nome utente è diverso, ad esempio se il nome utente di la stazione è glade2 quindi invia e-mail se la cartella di lavoro è salvata, altrimenti non invia.

Grazie mille per il vostro sostegno
Questo commento è stato fatto dal moderatore sul sito
Ciao fiorino,
Non ho capito il tuo punto. Cosa rappresenta il tuo nome utente?
Questo commento è stato fatto dal moderatore sul sito
Ciao crystal, grazie per la tua risposta, usernane è ambiente usernane, e l'ho fatto, ho usato una funzione if e exit sub.
Grazie mille.
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL