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

Hvordan sendes e-mail, hvis der klikkes på knappen i Excel?

Antag, at du skal sende e-mail via Outlook ved at klikke på en knap i Excel-regneark, hvordan kan du gøre det? Denne artikel introducerer en VBA-metode for at opnå det i detaljer.

Send e-mail, hvis der klikkes på knappen med VBA-kode


Send e-mail, hvis der klikkes på knappen med VBA-kode

Gør som følger for at sende en e-mail via Outlook, hvis der klikkes på en kommandoknap i Excel-projektmappe.

1. Indsæt en kommandoknap i dit regneark ved at klikke på Udvikler > indsatte > Kommando-knap (ActiveX-kontrol). Se skærmbillede:

2. Højreklik på den indsatte kommandoknap, og klik derefter på Vis kode fra højreklikmenuen som vist nedenfor i skærmbilledet.

3. I åbningen Microsoft Visual Basic til applikationer vindue, skal du udskifte den originale kode i kodevinduet med følgende VBA-script.

VBA-kode: Send e-mail, hvis der klikkes på knappen i Excel

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Noter:

1). Skift e-mail-organet, som du har brug for i xMailBody linje i koden.

2). Udskift Email adresse med modtagerens e-mail-adresse på linje .To = "E-mail-adresse".

3). Angiv Cc- og Bcc-modtagere, som du har brug for i .CC = "" og .Bcc = "" sektioner.

4). Skift e-mail-emnet på linje .Subject = "Test e-mail send ved at klikke på knappen".

4. Tryk på andre + Q taster samtidigt for at lukke Microsoft Visual Basic til applikationer vindue.

5. Sluk for designtilstand ved at klikke på Udvikler > Design Mode. Se skærmbillede:

Fra nu af, hver gang du klikker på kommandoknappen, oprettes der automatisk en e-mail med specificerede modtagere, emne og brødtekst. Send e-mailen ved at klikke på Send .

Bemærk: VBA-koden fungerer kun, når du bruger Outlook som dit e-mail-program.

Send nemt e-mail via Outlook baseret på felterne i den oprettede postliste i Excel:

Send emails nytte af Kutools til Excel hjælper med at sende e-mail via Outlook baseret på felterne i den oprettede postliste i Excel.
Download og prøv det nu! (30-dag gratis spor)


Relaterede artikler:


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (73)
Bedømt 3.5 ud af 5 · 1 vurderinger
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg søger at sende data fra en pivottabeldata, kan du hjælpe
Denne kommentar blev minimeret af moderatoren på webstedet
Er det muligt at skrive scriptet, så når du klikker på knappen, vil det vedhæfte sig selv til e-mailen som ovenfor, men også fjerne knappen? så kopien af ​​filen, der sendes via e-mail, ikke længere har knappen på sig?
Denne kommentar blev minimeret af moderatoren på webstedet
Lige under ".Body = xMailBody" tilføj følgende
.Attachments.Add ActiveWorkbook.FullName
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Danie.

Jeg tilføjede delen som du sagde, men e-mailen med den vedhæftede projektmappe har stadig knapperne på.
Denne kommentar blev minimeret af moderatoren på webstedet
hej er det muligt at sætte den op så jeg ikke skal trykke send - den sender automatisk mailen????
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,
Udskift venligst linjen .Display med .Send i ovenstående VBA-kode.
Denne kommentar blev minimeret af moderatoren på webstedet
det genererer kun én e-mail og vil blive ved med at overskrive indholdet i stedet for at åbne flere e-mail-kladder.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej alle sammen Først en stor tak, dette indlæg er meget nyttigt og fungerer for den vedhæftede fil. Dette virker for mig, men der gemmes ingen opdateringer i arket, du skal trykke på knappen Gem. Jeg vil gerne have, at den vedhæftede fil har det, der er i excel-arket i øjeblikket.

Jeg kan opnå dette ved at bruge den indbyggede excel-e-mail-funktion, men jeg ville have en knap, da jeg skal hardkode den specifikke e-mail-adresse.

Så sammenfattende vil jeg gerne vide:

Jeg vil gerne vide, om der er en måde at: efter en bruger åbne excel-projektmappen og foretaget redigeringer, om knappen vil beholde den vedhæftede fil med opdateringerne?
Denne kommentar blev minimeret af moderatoren på webstedet
Good Day,
Koden er blevet optimeret. Prøv det og tak for din kommentar.

Privat Sub CommandButton1_Click ()
'Opdateret af Extendoffice 2017 / 9 / 14
Dim xOutApp som objekt
Dim xOutMail som objekt
Dim xMailBody As String
On Error Resume Next
Indstil xOutApp = CreateObject("Outlook.Application")
Indstil xOutMail = xOutApp.CreateItem(0)
ActiveWorkbook.Save
xMailBody = "Body content" & vbNewLine & vbNewLine & _
"Dette er linje 1" & vbNewLine & _
"Dette er linje 2"
On Error Resume Next
Med xOutMail
.To = "E-mail-adresse"
.CC = ""
.BCC = ""
.Subject = "Test e-mail send ved at klikke på knappen"
.Body = xMailBody
.Attachments.Add ActiveWorkbook.FullName
.Vis 'eller brug .Send
Slut med
På Fejl GoTo 0
Indstil xOutMail = Ingenting
Indstil xOutApp = Ingenting
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan kan jeg vedhæfte den aktive arbejdsbog til e-mailen, når jeg trykker på knappen?
Denne kommentar blev minimeret af moderatoren på webstedet
God dag,
Lige under ".Body = xMailBody" tilføj følgende
.Attachments.Add ActiveWorkbook.FullName
Denne kommentar blev minimeret af moderatoren på webstedet
Teria como em vez de enviar a planilha, enviar as informações em imagem?
Denne kommentar blev minimeret af moderatoren på webstedet
ved hjælp af denne VBA-kode, kan jeg henvise til celleoplysninger i e-mailens brødtekst? Hvordan vil jeg for eksempel referere celleværdier til koden nedenfor?

xMailBody = "Body content" & vbNewLine & vbNewLine & _
"Dette er linje 1" & vbNewLine & _
"Dette er linje 2"

Brug også koden (.TO = "e-mail-adresse"). hvordan kan jeg få "e-mailadressen" til at trække en e-mailadresse ind fra en celle i kolonnen ved siden af.


Tak,
Denne kommentar blev minimeret af moderatoren på webstedet
Er det muligt at tilføje en anden e-mail-knap i det samme regneark? Når jeg prøver at gøre det, forbinder den til koden fra den originale e-mail-knap. tak.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,
Du skal tildele forskellige koder til hver knap.
Denne kommentar blev minimeret af moderatoren på webstedet
ved hjælp af denne VBA-kode, kan jeg henvise til celleoplysninger i e-mailens brødtekst? Hvordan vil jeg for eksempel referere celleværdier til koden nedenfor?

xMailBody = "Body content" & vbNewLine & vbNewLine & _
"Dette er linje 1" & vbNewLine & _
"Dette er linje 2"

Tak,
Denne kommentar blev minimeret af moderatoren på webstedet
Hej glenn
Anvend venligst følgende kode. Tak for din kommentar.
xMailBody = [B5]
Denne kommentar blev minimeret af moderatoren på webstedet
Er det muligt, i stedet for at sende den vedhæftede fil i e-mailen, at sende et hyperlink til filen (placeret på SharePoint)?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Laurie,
Kan ikke hjælpe dig med det. Tak for din kommentar.
Denne kommentar blev minimeret af moderatoren på webstedet
Kan jeg henvise til værdien i en celle i emnet med streng? En variation af nedenstående?

.Subject = "Ny begivenhed:" & Target.Address = "$B$38"
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Abi,
Skift venligst koden til .Subject = "Ny begivenhed:" & [B38].
Tak for din kommentar.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Der,
Kan nogen hjælpe mig med følgende krav?
Jeg har et excel-ark med to rullelister.

1 rullemenu-liste over afdelinger

2 rullemenu-kategori

Det jeg ønsker er, når jeg vælger en afdeling og kategori fra listerne; (f.eks. hvis jeg vælger "salg" i afdeling og "månedsrapport" i kategori)

Jeg skal e-maile PDF-versionen af ​​arbejdsarket til salgsteamet med e-mailens emne er månedlig rapport.

Hvis jeg vælger "produktion" fra afdelingslisten, skal e-mailen gå til en gruppe personer i produktionen.

Jeg sætter pris på, hvis du kan hjælpe mig med dette

Rasike
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Rasike,
Jeg kan desværre ikke hjælpe dig med det. Velkommen til at stille ethvert spørgsmål i vores forum: https://www.extendoffice.com/forum.html for at få mere Excel-support fra Excel-professionelle eller andre Excel-fans.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Hvordan kan jeg få mailen til automatisk at tilføje min signatur fra outlook?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej john
Nedenstående VBA-kode kan hjælpe dig med at løse problemet. Tak for din kommentar.

Privat Sub CommandButton1_Click ()
'Opdateret af Extendoffice 2019 / 6 / 26
Dim xOutApp som objekt
Dim xOutMail som objekt
On Error Resume Next
Indstil xOutApp = CreateObject("Outlook.Application")
Indstil xOutMail = xOutApp.CreateItem(0)
Med xOutMail
.Vis 'eller brug .Send
.To = "E-mail-adresse"
.CC = ""
.BCC = ""
.Subject = "Test e-mail send ved at klikke på knappen"
.HTMLBody = "Dette er en test-e-mail, der sendes i Excel" & "
" & .HTMLBody
'.Sende
Slut med
På Fejl GoTo 0
Indstil xOutMail = Ingenting
Indstil xOutApp = Ingenting
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Skal du være excel-bruger, når du trykker på knappen for at sende en e-mail? eller skal bare den person, der modtager e-mailen, være en outlook-bruger?
Denne kommentar blev minimeret af moderatoren på webstedet
God dag,
Da e-mailen skal sendes gennem Outlook efter at have klikket på knappen i Excel, skal du have Outlook installeret på din computer for at få det til at virke.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg vil gerne sende excel-regnearket i e-mailen, men det sender det ikke. Hvordan skriver du kode for at sende dokument som e-mail
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Marcus,
Nedenstående VBA-kode kan hjælpe dig med at løse problemet.

Sub SendWorkSheet()
'Opdatering 20190626
Dim xFile As String
Dim xFormat så længe
Dim Wb Som arbejdsbog
Dim Wb2 Som arbejdsbog
Dim FilePath som streng
Dim filnavn som streng
Dæmp OutlookApp som objekt
Dæmp OutlookMail som objekt
On Error Resume Next
Application.ScreenUpdating = False
Indstil Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Indstil Wb2 = Application.ActiveWorkbook
Vælg Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Sag xlOpenXMLWorkbookMacroEnabled:
Hvis Wb2.HasVBProject Så
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Afslut Vælg
FilePath = Environ$("temp") & "\"
Filnavn = Wb.Name & Format(Nu, "dd-mmm-åå h-mm-ss")
Indstil OutlookApp = CreateObject("Outlook.Application")
Indstil OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Med OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte-funktioner"
.Body = "Kontroller og læs dette dokument."
.Attachments.Add Wb2.FullName
.Skærm
'.Sende
Slut med
Wb2.Luk
Dræb FilePath & FileName & xFile
Indstil OutlookMail = Ingenting
Indstil OutlookApp = Ingenting
Application.ScreenUpdating = True
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan kan jeg vedhæfte det aktive arbejdsark til e-mailen, når jeg trykker på knappen?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Grant,
Venligst højreklik på knappen og vælg Vis kode, og kopier derefter nedenstående kode mellem Private Sub- og End Sub-linjerne. Håber jeg kan hjælpe. Tak for din kommentar.

Dim xFile As String
Dim xFormat så længe
Dim Wb Som arbejdsbog
Dim Wb2 Som arbejdsbog
Dim FilePath som streng
Dim filnavn som streng
Dæmp OutlookApp som objekt
Dæmp OutlookMail som objekt
On Error Resume Next
Application.ScreenUpdating = False
Indstil Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Indstil Wb2 = Application.ActiveWorkbook
Vælg Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Sag xlOpenXMLWorkbookMacroEnabled:
Hvis Wb2.HasVBProject Så
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Afslut Vælg
FilePath = Environ$("temp") & "\"
Filnavn = Wb.Name & Format(Nu, "dd-mmm-åå h-mm-ss")
Indstil OutlookApp = CreateObject("Outlook.Application")
Indstil OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Med OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte-funktioner"
.Body = "Kontroller og læs dette dokument."
.Attachments.Add Wb2.FullName
.Skærm
'.Sende
Slut med
Wb2.Luk
Dræb FilePath & FileName & xFile
Indstil OutlookMail = Ingenting
Indstil OutlookApp = Ingenting
Application.ScreenUpdating = True
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Er der en måde at ændre filnavnet til den aktuelle dato, når det vedhæftes e-mailen?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Jeg har arbejdet på et ark, men jeg kan ikke afslutte det. Jeg håber i kan hjælpe mig :)

Selve filen skal være en xltm (skabelon), og den skal vedhæfte selve arket med posten.

Og en automatisk signatur, så ville jeg blive meget glad.

På forhånd tak /Dr. Nang
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg kører et regneark med 80 individuelle stregkonti og har brugt VBA-kode på denne side med stor succes. Men i e-mailens brødtekst vil jeg gerne kopiere og indsætte det specifikke celleområde på en konto, når jeg sender, så klienten kan have en historik. Kan du hjælpe med VBA-koden til dette?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej! Mange tak for dette. Det har været fantastisk hjælp.

Er det muligt at sende et aktivt arbejdsark ved at trykke på en knap i stedet for den fulde projektmappe?

Tak!
Der er endnu ingen kommentarer her
Load More
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL