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

Come inserire la firma di Outlook durante l'invio di e-mail in Excel?

Supponendo di voler inviare un'e-mail direttamente in Excel, come puoi aggiungere la firma di Outlook predefinita nell'e-mail? Questo articolo fornisce due metodi per aiutarti ad aggiungere la firma di Outlook quando invii e-mail in Excel.

Inserisci la firma nell'e-mail di Outlook quando invii tramite Excel VBA
Inserisci facilmente la firma di Outlook durante l'invio di e-mail in Excel con uno strumento straordinario

Altri tutorial per l'invio di posta in Excel ...


Inserisci la firma nell'e-mail di Outlook quando invii tramite Excel VBA

Ad esempio, c'è un elenco di indirizzi e-mail in un foglio di lavoro, per inviare e-mail a tutti questi indirizzi in Excel e aggiungere la firma di Outlook predefinita nelle e-mail. Si prega di applicare il codice VBA sottostante per ottenerlo.

1. Aprire il foglio di lavoro che contiene l'elenco di indirizzi e-mail a cui si desidera inviare un'e-mail, quindi premere il tasto altro + F11 chiavi.

2. In apertura Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo, e quindi copia il seguente VBA 2 nella finestra del codice del modulo.

3. Ora è necessario sostituire il file .Corpo linea in VBA 2 con il codice in VBA 1. Dopodiché, sposta la linea .Schermo sotto la linea Con xMailOut.

VBA 1: modello di invio di e-mail con la firma predefinita di Outlook in Excel

.HTMLBody = "This is a test email sending in Excel" & "<br>" & .HTMLBody

VBA 2: invia e-mail agli indirizzi e-mail specificati nelle celle in Excel

Sub SendEmailToAddressInCells()
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select email address range", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Lo screenshot seguente può aiutarti a trovare facilmente le differenze dopo aver modificato il codice VBA.

4. premi il F5 chiave per eseguire il codice. Poi un Kutools for Excel si apre la casella di selezione, selezionare gli indirizzi e-mail a cui verranno inviate le e-mail, quindi fare clic su OK.

Quindi vengono create le e-mail. Puoi vedere la firma predefinita di Outlook aggiunta alla fine del corpo dell'e-mail.

Suggerimenti:

  • 1. È possibile modificare il corpo dell'email nel codice VBA 1 in base alle proprie esigenze.
  • 2. Dopo aver eseguito il codice, se viene visualizzata una finestra di dialogo di errore che avverte che il tipo definito dall'utente non è definito, chiudere questa finestra di dialogo e quindi fare clic su Strumenti > Riferimenti nel Microsoft Visual Basic, Applications Edition finestra. In apertura Riferimenti - VBAProject finestra, controlla il file Libreria di oggetti di Microsoft Outlook box e clicca OK. E poi esegui di nuovo il codice.

Inserisci facilmente la firma di Outlook durante l'invio di e-mail in Excel con uno strumento straordinario

Se sei un principiante in VBA, qui consiglio vivamente il Inviare emails utilità di Kutools for Excel per te. Con questa funzione, puoi inviare facilmente e-mail in base a determinati campi in Excel e aggiungere la firma di Outlook. Si prega di fare quanto segue.

Prima di applicare Kutools for Excel, Per favore scaricalo e installalo prima.

In primo luogo, è necessario creare una mailing list con diversi campi su cui inviare le e-mail.

Puoi creare manualmente una mailing list in base alle tue esigenze o applicare la funzione Crea mailing list per farlo rapidamente.

1. Clic Kutools Plus > Crea mailing list.

2. Nel Crea mailing list finestra di dialogo, specificare i campi necessari, scegliere dove stampare l'elenco, quindi fare clic su OK pulsante.

3. Ora viene creato un esempio di mailing list. Poiché si tratta di un elenco di esempio, è necessario modificare i campi con determinati contenuti necessari. (sono consentite più righe)

4. Successivamente, seleziona l'intero elenco (includi le intestazioni), fai clic su Kutools Plus > Inviare emails.

5. Nel Inviare emails la finestra di dialogo:

  • 5.1) Gli elementi nella mailing list selezionata vengono inseriti automaticamente nei campi corrispondenti;
  • 5.2) Termina il corpo dell'email;
  • 5.3) Verificare sia il file Invia email tramite Outlook e Usa le impostazioni della firma di Outlook scatole;
  • 5.4) Fare clic su Invia pulsante. Vedi screenshot:

Ora vengono inviate le e-mail. E la firma predefinita di Outlook viene aggiunta alla fine del corpo dell'email.

  Se vuoi avere una prova gratuita (30-day) di questa utilità, fare clic per scaricarlo, quindi andare ad applicare l'operazione secondo i passaggi precedenti.


Articoli correlati:

Invia e-mail agli indirizzi e-mail specificati nelle celle in Excel
Supponendo che tu abbia un elenco di indirizzi e-mail e desideri inviare messaggi e-mail a questi indirizzi in blocco direttamente in Excel. Come ottenerlo? Questo articolo ti mostrerà i metodi per inviare e-mail a più indirizzi e-mail specificati nelle celle in Excel.

Invia e-mail copiando e incollando un intervallo specificato nel corpo dell'e-mail in Excel
In molti casi, un intervallo di contenuti specificato nel foglio di lavoro di Excel può essere utile nella comunicazione e-mail. In questo articolo, introdurremo un metodo per inviare un'e-mail con un intervallo specificato incollato nel corpo dell'e-mail direttamente in Excel.

Invia e-mail con più allegati allegati in Excel
Questo articolo parla dell'invio di un'e-mail tramite Outlook con più allegati allegati in Excel.

Invia e-mail se la data di scadenza è stata rispettata in Excel
Ad esempio, se la data di scadenza nella colonna C è inferiore o uguale a 7 giorni (la data corrente è 2017/9/13), inviare un promemoria e-mail al destinatario specificato nella colonna A con il contenuto specificato nella colonna B. Procedura raggiungerlo? Questo articolo fornirà un metodo VBA per affrontarlo in dettaglio.

Invia automaticamente e-mail in base al valore della cella in Excel
Supponendo di voler inviare un'e-mail tramite Outlook a un determinato destinatario in base a un valore di cella specificato in Excel. Ad esempio, quando il valore della cella D7 in un foglio di lavoro è maggiore di 200, viene creata automaticamente un'e-mail. Questo articolo introduce un metodo VBA per risolvere rapidamente questo problema.

Altri tutorial per l'invio di posta in Excel ...


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 (27)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
grazie mille, mi hai salvato la vita con questo modello :D
Questo commento è stato fatto dal moderatore sul sito
Caro Favio,
Felice di aiutare.
Questo commento è stato fatto dal moderatore sul sito
non funziona con gli allegati in Office 2016
Questo commento è stato fatto dal moderatore sul sito
Caro Chris,
Il codice VBA sottostante può aiutarti. Dopo aver eseguito il codice, seleziona le celle contenenti gli indirizzi e-mail a cui invierai le e-mail, quindi seleziona i file che devi allegare all'e-mail come allegati quando viene visualizzata la seconda finestra di dialogo. E anche la firma di Outlook predefinita verrà visualizzata nel corpo dell'e-mail. Grazie per il tuo commento.

Sub SendEmailToAddressInCells()
Dim xRg come intervallo
Dim xRgEach come intervallo
Dim xRgVal come stringa
Dim xAddress come stringa
Dim xOutApp come Outlook.Application
Dim xMailOut come Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Selezionare l'intervallo di indirizzi email", "KuTools per Excel", xAddress, , , , , 8)
Se xRg non è niente, esci da Sub
Application.ScreenUpdating = False
Imposta xOutApp = CreateObject ("Outlook.Application")
Imposta xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
Imposta xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
Se xFileDlg.Show = -1 Allora
Per ogni xRgEach In xRg
xRgVal = xRgOgni.Valore
Se xRgVal piace "?*@?*.?*" Allora
Imposta xMailOut = xOutApp.CreateItem(olMailItem)
Con xMailOut
.Schermo
.A = xRgVal
.Oggetto = "Test"
.HTMLBody = "Questa è un'email di prova che viene inviata in Excel" & "
" & .HTMLBody
Per ogni xFileDlgItem in xFileDlg.SelectedItems
.Allegati.Aggiungi xFileDlgItem
Avanti xFileDlgItem
'.Spedire
Fine Con
End If
Successiva
Imposta xMailOut = Niente
Imposta xOutApp = Niente
Application.ScreenUpdating = True
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
sto cercando di aggiungere la firma di Outlook intitolata "predefinita" ma non sembra che funzioni.
puoi aiutare per favore? Credo che la mia logica "xMailout" sia sbagliata. questa è la mia sospetta area difettosa.

Private Sub CommandButton1_Click ()

Dim xOutApp come oggetto
Dim xOutMail come oggetto
Dim xMailBody come stringa
Dim xMailOut come Outlook.MailItem
On Error Resume Next
Imposta xOutApp = CreateObject ("Outlook.Application")
Imposta xOutMail = xOutApp.CreateItem(0)
xMailBody = "Saluti:" & vbNewLine & vbNewLine & _
"Questa è la riga 1" & vbNewLine & _
"Questa è la riga 2" & vbNewLine & _
"Questa è la riga 3" & vbNewLine & _
"Questa è la linea 4"
On Error Resume Next
Con xOutMail
.A = "E-mail.qui.com"
.CC = "E-mail.qui.com"
.Subject = "Titolo email qui - " & Range("Cell#").value
.Corpo = xMailBody
. Allegati.Aggiungi ActiveWorkbook.FullName
Imposta xMailOut = xOutApp.CreateItem(olMailItem)
Con xMailOut
.Schermo
Fine Con
ActiveWorkbook.Salva
On Error GoTo 0
Imposta xOutMail = Niente
Imposta xOutApp = Niente
End Sub
Questo commento è stato fatto dal moderatore sul sito
Buona giornata,
Il tuo script è stato modificato, per favore prova. Grazie.

Private Sub CommandButton1_Click ()
Dim xOutApp come oggetto
Dim xOutMail come oggetto
Dim xMailBody come stringa
Dim xMailOut come Outlook.MailItem
On Error Resume Next
Imposta xOutApp = CreateObject ("Outlook.Application")
Imposta xOutMail = xOutApp.CreateItem(0)
xMailBody = "Saluti:" & vbNewLine & vbNewLine & _
"Questa è la riga 1" & vbNewLine & _
"Questa è la riga 2" & vbNewLine & _
"Questa è la riga 3" & vbNewLine & _
"Questa è la linea 4"
On Error Resume Next
Con xOutMail
.A = "E-mail.qui.com"
.CC = "E-mail.qui.com"
.Subject = "Titolo email qui - " & Range("Cell#").Valore
.Corpo = xMailBody
.Allegati.Aggiungi ActiveWorkbook.FullName
Imposta xMailOut = xOutApp.CreateItem(olMailItem)
Con xMailOut
.Schermo
Fine Con
Fine Con
ActiveWorkbook.Salva
On Error GoTo 0
Imposta xOutMail = Niente
Imposta xOutApp = Niente
End Sub
Questo commento è stato fatto dal moderatore sul sito
come aggiungere la firma se la macro è utilizzata da più utenti.
ad esempio, la mia macro verrà eseguita anche da altre 3 persone. Quindi, come può la macro utilizzare la firma dell'utente che sta eseguendo la macro.
grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Buon Giorno,
Il codice VBA può riconoscere automaticamente la firma predefinita in Outlook del mittente e inviare e-mail con la propria firma tramite Outlook.
Questo commento è stato fatto dal moderatore sul sito
Se il mio corpo del testo è collegato per estrarre dai campi di Excel, l'uso di & .HTMLBody alla fine della stringa cancella tutto il corpo del testo e lascia solo la firma.
Questo commento è stato fatto dal moderatore sul sito
Ho problemi a eseguirlo su Excel 2016. Ricevo un messaggio "Errore di compilazione: tipo definito dall'utente non definito". Per favore aiuto!
Questo commento è stato fatto dal moderatore sul sito
Stupendo!!!!
Questo commento è stato fatto dal moderatore sul sito
Grazie mille ...
Questo commento è stato fatto dal moderatore sul sito
Ciao, avrei bisogno di aiuto con la mia macro, devo inserire la firma di Outlook sotto la tabella, potresti aiutarmi con quello?

Private Sub CommandButton1_Click ()


Prospettiva fioca come oggetto
Dim newE-mail come oggetto
Oscura xIspeziona come oggetto
Dim page Editor come oggetto

Imposta Outlook = CreateObject ("Outlook.Application")
Imposta newEmail = outlook.CreateItem(0)

Con nuovaE-mail
.A = Foglio5.Intervallo("F1")
.CC = ""
.BCC = ""
.Oggetto = Foglio5.Intervallo("B5")
.Corpo = Foglio5.Intervallo("B41")
.Schermo

Imposta xInspect = newEmail.GetInspector
Imposta pageEditor = xInspect.WordEditor

Foglio5.Intervallo("B6:I7").Copia

pageEditor.Application.Selection.Start = Len(.Body)
pageEditor.Application.Selection.End = pageEditor.Application.Selection.Start
pageEditor.Application.Selection.PasteAndFormat (wdFormatPlainText)

.Schermo
Imposta pageEditor = Niente
Imposta xInspect = Niente
Fine Con

Imposta newEmail = Niente
Imposta prospettiva = Niente

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Bara,
Mi dispiace non poterti aiutare con quello. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Caro,
Qualcuno può aiutarmi con il mio VBA,
Ho bisogno della firma nell'e-mail creata:
Questo commento è stato fatto dal moderatore sul sito
Grazie a te, ora posso aggiungere la firma ma poi rimuove gli spazi tra i paragrafi di testo. Per favore puoi aiutarmi ?


Sub ciaomondo()
Dim OutApp come oggetto
Dim OutMail come oggetto
Cella debole come intervallo
Percorso fioco come stringa
Percorso = Application.ActiveWorkbook.Path
Imposta OutApp = CreateObject ("Outlook.Application")

Per ogni cella nell'intervallo ("C4: C6")
Imposta OutMail = OutApp.CreateItem(0)
Con OutMail
.Schermo
.A = cella.Valore
.Oggetto = Celle(cella.Riga, "D").Valore
.HTMLBody = "Gentile" & Celle(cella.Riga, "B").Valore & "," _
& vbNewLine & vbNewLine & _
"Calorosi saluti" _
& vbNewLine & vbNewLine & _
"Noi, JK Overseas, vorremmo cogliere l'opportunità e presentare la nostra azienda JK Overseas, che è coinvolta nel settore del sale negli ultimi 3 anni. Attualmente siamo forti nel mercato interno e in espansione all'estero. Siamo il fornitore di sale commestibile, Sale per addolcimento dell'acqua, sale antigelo, sale industriale" e "." _
& vbNewLine & vbNewLine & _
"Abbiamo un legame con produttori su larga scala in India e acquistiamo da loro sale di qualità ed esportazioni. Quindi, stiamo cercando un importatore esperto affidabile e un agente distributore per fare affari a lungo termine con reciproco vantaggio" & " ." _
& vbNewLine & vbNewLine & _
"Vi preghiamo di contattarci per le vostre esigenze o per qualsiasi altra richiesta. Forniamo una logistica affidabile e consegne puntuali. Siamo fiduciosi che i nostri prezzi più competitivi soddisferanno le vostre aspettative" & "." _
& vbNewLine & vbNewLine & _
.HTMLCorpo

'.Spedire
Fine Con
Cella successiva
End Sub
Questo commento è stato fatto dal moderatore sul sito
Sto cercando di integrare questo codice nel formato corrente che ho attualmente per cui sono in grado di automatizzare le e-mail all'interno di Excel in base a un intervallo di valori prestabilito. Qualsiasi aiuto in merito a dove aggiungere il codice "firma" all'interno di quello che ho attualmente sarebbe molto apprezzato.

Pubblico Sub CheckAndSendMail()

'Aggiornato da Extendoffice 2018/11/22

Dim xRgDate come intervallo

Dim xRgInvia come intervallo

Dim xRgText come intervallo

Dim xRgDone come intervallo

Dim xOutApp come oggetto

Dim xMailItem come oggetto

Dim xLastRow Fino a quando

Dim vbCrLf come stringa

Dim xMailBody come stringa

Dim xRgDateVal come stringa

Dim xRgSendVal come stringa

Dim xMailSubject come stringa

Dim I quanto a lungo

On Error Resume Next

'Si prega di specificare l'intervallo di date di scadenza

xStrRang = "D2:D110"

Imposta xRgDate = Intervallo(xStrRang)

'Si prega di specificare l'intervallo di indirizzi e-mail dei destinatari

xStrRang = "C2:C110"

Imposta xRgSend = Intervallo(xStrRang)

xStrRang = "A2:A110"

Imposta xRgName = Intervallo(xStrRang)

'Specifica l'intervallo con il contenuto promemoria nella tua e-mail

xStrRang = "Z2:Z110"

Imposta xRgText = Intervallo(xStrRang)

xUltimaRiga = xRgDate.Righe.Conteggio

Imposta xRgDate = xRgDate(1)

Imposta xRgSend = xRgSend(1)

Imposta xRgName = xRgName(1)

Imposta xRgText = xRgText(1)

Imposta xOutApp = CreateObject ("Outlook.Application")

Per I = 1 A xLastRow

xRgDateVal = ""

xRgDateVal = xRgDate.Offset(I - 1).Valore

Se xRgDateVal <> "" Allora

Se CDate(xRgDateVal) - Data <= 30 e CDate(xRgDateVal) - Data > 0 Allora

xRgSendVal = xRgSend.Offset(I - 1).Valore

xMailSubject = " Contratto di servizio JBC in scadenza il " & xRgDateVal

vbCrLf = "

"

xMailBody = ""

xMailBody = xMailBody & "Gentile" & xRgName.Offset(I - 1).Valore & vbCrLf

xMailBody = xMailBody & " " & xRgText.Offset(I - 1).Valore & vbCrLf

xMailBody = xMailBody & ""

Imposta xMailItem = xOutApp.CreateItem(0)

Con xMailItem

.Oggetto = xMailSubject

.A = xRgSendVal

.CC = "mailcc@justbettercare.com"

.HTMLBody = xMailBody

.Schermo

'.Spedire

Fine Con

Imposta xMailItem = Niente

End If

End If

Successiva

Imposta xOutApp = Niente

End Sub
Questo commento è stato fatto dal moderatore sul sito
È un codice davvero utile
Ho bisogno di cambiare il formato del testo da destra a sinistra nella riga xOutMsg
aiuto per favore .
Questo commento è stato fatto dal moderatore sul sito
Sto cercando di inviare singoli fogli da Excel a e-mail diverse, ma allegherà solo la cartella di lavoro stessa. Inoltre, devo essere in grado di aggiungere la mia riga della firma. Qualche aiuto?Sub AST_Email_From_Excel()

Dim. emailApplicazione come oggetto
Dim. email Item come oggetto

Imposta emailApplication = CreateObject("Outlook.Application")
Imposta emailItem = emailApplication.CreateItem(0)

' Ora costruiamo l'e-mail.

emailItem.to = Intervallo ("e2"). Valore

emailItem.CC = Intervallo ("g2"). Valore

emailItem.Subject = "Attrezzatura tecnica non restituita"

emailItem.Body = "Consulta il foglio di calcolo allegato per gli articoli non restituiti nella tua zona"

'Allega cartella di lavoro corrente
emailItem.Attachments.Add ActiveWorkbook.FullName

'Allega qualsiasi file dal tuo computer.
'emailItem.Attachments.Add ("C:\...)"

'Invia l'e-mail
'emailItem.send

'Visualizza l'e-mail in modo che l'utente possa modificarla come desidera prima dell'invio
emailItem.Display

Imposta emailItem = Niente
Imposta emailApplication = Niente

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Chris, il codice che hai fornito è stato modificato. È ora possibile inserire la firma di Outlook nel corpo del messaggio. Per favore, provalo. Grazie. Sub AST_Email_From_Excel()
'Aggiornato da Extendoffice 20220211
Dim. emailApplicazione come oggetto
Dim. email Item come oggetto
Imposta emailApplication = CreateObject("Outlook.Application")
Imposta emailItem = emailApplication.CreateItem(0)

' Ora costruiamo l'e-mail.
emailItem.Display 'Mostra l'email in modo che l'utente possa modificarla come desiderato prima dell'invio
emailItem.to = Intervallo ("e2"). Valore
emailItem.CC = Intervallo ("g2"). Valore
emailItem.Subject = "Attrezzatura tecnica non restituita"
emailItem.HTMLBody = "Consulta il foglio di lavoro allegato per gli articoli non restituiti nella tua zona" & " " & emailItem.HTMLBody

'Allega cartella di lavoro corrente
emailItem.Attachments.Add ActiveWorkbook.FullName

Imposta emailItem = Niente
Imposta emailApplication = Niente

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Crystal, grazie per aver aggiunto la firma, tuttavia non sembra che la sezione HTMLBody mi piaccia. Quando eseguo la macro, viene eseguito il debug su emailItem.HTMLBody = "Vedi il foglio di calcolo allegato per gli elementi non restituiti nella tua zona" & " " & emailItem.HTMLBodyand non completa il resto.  
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Quale versione di Excel stai utilizzando? Anche il seguente codice VBA può aiutare. Per favore, provalo. Grazie per il tuo feedback. Sub SendWorkSheet()
'Aggiorna entro Extendoffice 20220218
Dim xFile come stringa
Dim xFormat quanto a lungo
Dim Wb come cartella di lavoro
Dim Wb2 come cartella di lavoro
Attenuare FilePath come stringa
Dim FileName As String
Oscura OutlookApp come oggetto
Oscura OutlookMail come oggetto
On Error Resume Next
Application.ScreenUpdating = False
Imposta Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Imposta Wb2 = Application.ActiveWorkbook
Selezionare Caso Wb.FileFormat
Caso xlOpenXMLCartella di lavoro:
xFile = ".xlsx"
xFormato = xlOpenXMLCartella di lavoro
Caso xlOpenXMLWorkbookMacroEnabled:
Se Wb2.HasVBProject allora
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Altro
xFile = ".xlsx"
xFormato = xlOpenXMLCartella di lavoro
End If
Caso Excel8:
xFile = ".xls"
xFormato = Excel8
Caso xlExcel12:
xFile = ".xlsb"
xFormato = xlExcel12
End Select
PercorsoFile = Ambiente$("temp") & "\"
FileName = Wb.Name & Format(Ora, "gg-mmm-aa h-mm-ss")
Imposta OutlookApp = CreateObject ("Outlook.Application")
Imposta OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
'xstr = Intervallo("e2") & " ; " & Intervallo("g2")
Con Posta di Outlook
.Schermo
.A = Intervallo("e2")
.CC = Intervallo ("g2")
.BCC = ""
.Subject = "Attrezzatura tecnica non restituita"
.HTMLBody = "Consulta il foglio di lavoro allegato per gli articoli non restituiti nella tua zona" & " " & .HTMLBody
.Allegati.Aggiungi Wb2.FullName
'.Spedire
Fine Con
Wb2.Chiudi
Uccidi FilePath & FileName & xFile
Imposta OutlookMail = Niente
Imposta OutlookApp = Niente
Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Sembra essere Excel 2016 e VBA 7.1
Questo commento è stato fatto dal moderatore sul sito
Oi Cristal, a minha macro perde una configurazione da assinatura do e-mail, com imagens e formattação original. Risolutore Como Consigo?

SubGeraremail()

Oscura OLapp come Outlook.Application
Dim janela come Outlook.MailItem

Imposta OLapp = Nuovo Outlook.Application
Imposta janela = OLapp.CreateItem(olMailItem)

Arquivo01 = "Mappa AN"
Anexo01 = ThisWorkbook.Path & "\" & Arquivo01 & ".xlsm"


Con janella
ActiveWorkbook.Salva
.Schermo
.To = Fogli("Base").Intervallo("A2").Valore
.CC = Fogli("Base").Intervallo("A5").Valore
.Subject = "Mapa - Acrilo" & Formato(Data, "gg.mm.aa")
assinatura = .Corpo
.Body = "Prezados/as" & Chr(10) & Chr(10) & "Segue anexo o mapa de Acrilonitrila considerando come vendas previstos no S&OP." & Chr(10) & Chr(10) & assinatura
.Allegati.Aggiungi Anexo01
Fine Con

End Sub
Questo commento è stato fatto dal moderatore sul sito
Com a mudança abaixo, consegui ajustar. Porém a letra do corpo da mensagem fica in Times New Roman. Gostaria de usar Calibri, como posso alterar o código?

SubGeraremail()

Oscura OLapp come Outlook.Application
Dim janela come Outlook.MailItem

Imposta OLapp = Nuovo Outlook.Application
Imposta janela = OLapp.CreateItem(olMailItem)

Arquivo01 = "Mappa AN"
Anexo01 = ThisWorkbook.Path & "\" & Arquivo01 & ".xlsm"


Con janella
ActiveWorkbook.Salva
.Schermo
.To = Fogli("Base").Intervallo("A2").Valore
.CC = Fogli("Base").Intervallo("A5").Valore
.Subject = "Mapa - Acrilo" & Formato(Data, "gg.mm.aa")
assinatura = .Corpo
.HTMLBody = "Prezados/as" & Chr(10) & Chr(10) & "Segue anexo o mapa de Acrilonitrila as vendas previstos no S&OP." & " " & .HTMLBody
.Allegati.Aggiungi Anexo01
Fine Con

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Milla,
Il seguente codice VBA può aiutarti a cambiare il carattere del corpo dell'email in Calibri, provalo. Grazie.
Prima di eseguire il codice, è necessario fare clic Strumenti > Riferimento nel Microsoft Visual Basic, Applications Edition finestra, quindi controllare il Libreria di oggetti di Microsoft Word casella di controllo in Riferimenti - VBAProject finestra di dialogo come lo screenshot mostrato di seguito.
[img]Io:\工作\周雪明\2022年工作\6月份\文章评论截图\3.png[/img]
Sub Geraremail()
Dim OLapp As Outlook.Application
Dim janela As Outlook.MailItem
Dim xDoc As Document 'Click Tools > Reference to enable the Microsoft Word Object Library
On Error Resume Next
Set OLapp = New Outlook.Application
Set janela = OLapp.CreateItem(olMailItem)
Arquivo01 = "Mapa AN"
Anexo01 = ThisWorkbook.Path & "\" & Arquivo01 & ".xlsm"
With janela
  ActiveWorkbook.Save
  .Display
  .To = Sheets("Base").Range("A2").Value
  .CC = Sheets("Base").Range("A5").Value
  .Subject = "Mapa - Acrilo " & Format(Date, "dd.mm.yy")
   assinatura = .Body
  .HTMLBody = "Prezados/as," & Chr(10) & Chr(10) & "Segue anexo o mapa de Acrilonitrila considerando as vendas previstas no S&OP." & "<br>" & .HTMLBody
  .Attachments.Add Anexo01
End With
Set xDoc = janela.GetInspector.WordEditor
xDoc.Content.Font.Name = "Calibri"
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Milla,
Il seguente codice VBA può aiutarti a cambiare il carattere del corpo dell'email in Calibri, provalo. Grazie.
Prima di eseguire il codice, è necessario fare clic Strumenti > Riferimento nel Microsoft Visual Basic, Applications Edition finestra, quindi controllare il Libreria di oggetti di Microsoft Word casella di controllo in Riferimenti - VBAProject finestra di dialogo come il file allegato mostrato di seguito.
Sub Geraremail()
Dim OLapp As Outlook.Application
Dim janela As Outlook.MailItem
Dim xDoc As Document 'Click Tools > Reference to enable the Microsoft Word Object Library
On Error Resume Next
Set OLapp = New Outlook.Application
Set janela = OLapp.CreateItem(olMailItem)
Arquivo01 = "Mapa AN"
Anexo01 = ThisWorkbook.Path & "\" & Arquivo01 & ".xlsm"
With janela
  ActiveWorkbook.Save
  .Display
  .To = Sheets("Base").Range("A2").Value
  .CC = Sheets("Base").Range("A5").Value
  .Subject = "Mapa - Acrilo " & Format(Date, "dd.mm.yy")
   assinatura = .Body
  .HTMLBody = "Prezados/as," & Chr(10) & Chr(10) & "Segue anexo o mapa de Acrilonitrila considerando as vendas previstas no S&OP." & "<br>" & .HTMLBody
  .Attachments.Add Anexo01
End With
Set xDoc = janela.GetInspector.WordEditor
xDoc.Content.Font.Name = "Calibri"
End Sub
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