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

Hur skickar jag ett e-postmeddelande via Outlook när arbetsboken sparas i Excel?

Den här artikeln talar om att skicka ett e-postmeddelande via Outlook när en specifik arbetsbok sparas i Excel. Gör som självstudien visar.

Skicka ett e-postmeddelande via Outlook när arbetsboken sparas med VBA-kod


Skicka ett e-postmeddelande via Outlook när arbetsboken sparas med VBA-kod

Gör så här för att skicka ett e-postmeddelande via Outlook när arbetsboken sparas i Excel.

1. Spara arbetsboken först som en Excel-makroaktiverad arbetsbok. Klick Fil > Spara som. I Spara som Välj en mapp för att spara arbetsboken, namnge den i rutan Filnamn, välj Excel Macro-Enabled Workbook från Spara som rullgardinsmenyn och klicka sedan på Save knapp. Se skärmdump:

2. Öppna Excel Macro-aktiverad arbetsbok som du har sparat just nu, tryck på andra + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer dubbelklicka Denna arbetsbok i det vänstra fältet och kopiera sedan och klistra in nedanstående VBA-kod i Denna arbetsbok kodfönster. Se skärmdump:

VBA-kod: Skicka e-post när arbetsboken sparas

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

Anmärkningar: Byt ut E-postadress med mottagarens e-postadress i raden .To = "E-postadress"och ändra Cc, ämne såväl som kroppsfält i VBA-koden som du behöver.

3. tryck på andra + Q samtidigt för att stänga Microsoft Visual Basic för applikationer fönster.

Från och med nu, när du uppdaterar arbetsboken och sparar den, skapas ett e-postmeddelande automatiskt med uppdaterad arbetsbok bifogad. Klicka på Skicka knappen för att skicka e-postmeddelandet. Se skärmdump:

Anmärkningar: VBA-koden fungerar bara när du använder Outlook som ditt e-postprogram.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (17)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hur man automatiserar e-postmeddelandet i VBA baserat på datumintervall, utan att behöva se popup-fönstret för säkerhetstillstånd för att tillåta VBA att skicka e-postmeddelandet.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack. Consulta: utilizando esta misma rutina, como podria enviar el correo a un correo específico dependiendo el valor de otra celda?
Denna kommentar minimerades av moderatoren på webbplatsen
Kära alla, jag skulle vilja fråga hur man bifogar en funktionell länk till en viss mapp på servern, om jag klistrar in länken visas den i arbetsboken precis som vanlig text och så fungerar den inte i mottagen e-post, hur kan jag förvandla den till länk så att mottagarna kan klicka på den?
Jag skulle vilja använda detta sätt istället för att skicka medföljande excel-fil.
Tack för råd
Denna kommentar minimerades av moderatoren på webbplatsen
Hej robert
Jag kan tyvärr inte hjälpa till med detta, välkommen att ställa frågor om Excel till vårt forum: https://www.extendoffice.com/forum.html. Du kommer att få mer Excel-stöd från våra professionella eller andra Excel-fans.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag skrev detta i brödtexten i mejlet och det fungerade för mig...
"file:///Z:\dir1\dir2\dir3\Test1.xlsm"
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, bra artikel! En sak som jag har försökt uppnå med detta är att bifoga arbetsbokens nuvarande tillstånd till e-postmeddelandet.

För tillfället skickar den bara det ursprungliga tillståndet för filen och inkluderar inga ändringar som användaren skulle ha gjort.

Några idéer om hur man implementerar detta med hjälp av ett makro?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Chris,
Koden har uppdaterats med problemet löst, försök gärna. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Chris,

Jag har råkat ut för samma fråga.
För närvarande används koderna i modulen "beforesave".
Vilket innebär att e-postmeddelandet skickar kalkylarket som tidigare sparats.

Det finns en annan modul "eftersparning".
Jag använde koden i den här modulen och det fungerade som en charm.
Denna kommentar minimerades av moderatoren på webbplatsen
Hur skulle detta hanteras för ett Office 365-dokument. Den sparas automatiskt.
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att få det automatiska e-postmeddelandet att automatiskt kryptera?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Mike,
Jag kan tyvärr inte hjälpa till att lösa detta problem. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Tack så mycket för denna riktlinje :-) Jag skulle vilja göra något mer i den här koden - skicka ett mail baserat på länderna. Det betyder att jag måste skapa kommandon med if och select. Rätt? Jag har redan tagit bort bilagan från e-post. Jag skulle vilja lägga till länken med sökväg till mappen istället. Men när makro körs är kommandot inte giltigt :-(
Jag uppskattar varje hjälp hur man lägger till det där.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej - Hur kan jag inkludera celldata i e-postfältet "cc"?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Brent,
Om du vill inkludera värdet i cell a7 i e-postfältet "cc" kan du prova nedanstående VBA.

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

'Uppdaterad av Extendoffice 20200628

Dim xOutApp som objekt

Dim xMailItem som objekt

Dim xName As String

On Error Resume Next

Ställ in xOutApp = CreateObject("Outlook.Application")

Ställ in xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

Med xMailItem

.To = "E-postadress"

.CC = Range("a7").Värde


.Subject = "Arbetsboken har sparats"

.Body = "Hej," & Chr(13) & Chr(13) & "Filen är nu uppdaterad."

.Attachments.Add xName

.Visa

'.skicka

Sluta med

Ställ in xMailItem = Ingenting

Ställ in xOutApp = Ingenting

End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Bästa alla, kan någon hjälpa mig, jag är nybörjare inom VBA-kodning, jag har gjort några ändringar, men hur kan jag göra det skicka e-post om arbetsboken är sparad och om användarnamnet är annorlunda, som om användarnamnet på stationen är glade2 skicka e-post om arbetsboken är sparad, annars skicka inte.

Tack så mycket för ditt stöd
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Florin,
Förstod inte din poäng. Vad representerar ditt användarnamn?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej crystal, tack för ditt svar, usernane är enviroment usernane, och jag har gjort det, jag använde en if-funktion och avsluta sub.
Tack så mycket.
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL