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

Kako poslati e-pošto, če v Excelu kliknemo na gumb?

Recimo, da morate e-pošto poslati prek Outlooka s klikom na gumb na Excelovem delovnem listu, kako lahko to storite? Ta članek bo predstavil metodo VBA za podrobno doseganje.

Pošlji e-pošto, če kliknete gumb s kodo VBA


Pošlji e-pošto, če kliknete gumb s kodo VBA

Naredite naslednje, če želite poslati e-poštno sporočilo prek Outlooka, če v Excelovem delovnem zvezku kliknete ukazni gumb.

1. V svoj delovni list vstavite ukazni gumb s klikom Razvojni > Vstavi > Ukazni gumb (nadzor ActiveX). Oglejte si posnetek zaslona:

2. Z desno miškino tipko kliknite vstavljeni ukazni gumb in nato kliknite Ogled kode v meniju z desnim klikom, kot je prikazano spodaj.

3. Na odprtju Microsoft Visual Basic za aplikacije okno, zamenjajte izvirno kodo v oknu Code z naslednjim skriptom VBA.

Koda VBA: Če v Excelu kliknete gumb, pošljite e-pošto

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

Opombe:

1). Prosimo, spremenite telo e-pošte, kot potrebujete v xMailBody vrstico v kodi.

2). Zamenjajte Email naslov z e-poštnim naslovom prejemnika v vrstici .To = "E-poštni naslov".

3). Določite prejemnike kopije in skp, kot jih potrebujete .CC = "" in .Bcc = "" oddelkov.

4). V vrstici spremenite zadevo e-pošte .Subject = "Preizkusite pošiljanje e-pošte s klikom na gumb".

4. Pritisnite druga + Q tipke hkrati, da zaprete tipko Microsoft Visual Basic za aplikacije okno.

5. Izklopite način oblikovanja s klikom Razvojni > Način oblikovanja. Oglejte si posnetek zaslona:

Od zdaj naprej se bo vsakič, ko kliknete na ukazni gumb, samodejno ustvarilo e-poštno sporočilo z določenimi prejemniki, zadevo in telesom. Pošljite e-pošto s klikom na Pošlji gumb.

Opombe: Koda VBA deluje samo, če Outlook uporabljate kot svoj e-poštni program.

Preprosto pošiljanje e-pošte prek Outlooka na podlagi polj ustvarjenega poštnega seznama v Excelu:

O Pošlji e-pošto uporabnost Kutools za Excel pomaga pošiljati e-pošto prek Outlooka na podlagi polj ustvarjenega poštnega seznama v Excelu.
Prenesite in poskusite zdaj! (30-dnevna brezplačna pot)


Sorodni članki:


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2019 in 365. Podpira vse jezike. Preprosta namestitev v vašem podjetju ali organizaciji. Vse funkcije 30-dnevnega brezplačnega preskusa. 60-dnevno jamstvo za vračilo denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50% in vsak dan zmanjša na stotine klikov z miško!
dno pisarniške mize
Komentarji (71)
Ocenjeno 3.5 iz 5 · 1 ocene
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, želim poslati podatke iz podatkov vrtilne tabele, ali lahko prosim pomagate
Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče napisati skript tako, da se ob kliku na gumb pripne k e-poštnemu sporočilu, kot je zgoraj, vendar tudi odstrani gumb? tako da kopija datoteke, ki se pošilja po e-pošti, nima več gumba?
Ta komentar je moderator na spletnem mestu minimiziral
Tik pod ".Body = xMailBody" dodajte naslednje
.Priloge.Dodaj ActiveWorkbook.FullName
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Danie.

Dodal sem del, kot ste rekli, vendar ima e-poštno sporočilo s priloženim delovnim zvezkom še vedno vključene gumbe.
Ta komentar je moderator na spletnem mestu minimiziral
zdravo, ali ga je mogoče nastaviti tako, da mi ni treba pritisniti na pošlji - samodejno pošlje e-pošto????
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Prosimo, zamenjajte vrstico .Display z .Send v zgornji kodi VBA.
Ta komentar je moderator na spletnem mestu minimiziral
ustvari samo eno e-pošto in bo vsebino še naprej prepisoval, namesto da bi odpiral več osnutkov e-pošte.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, najprej lepa hvala, ta objava je zelo koristna in deluje za prilogo. To zame deluje, vendar na listu niso shranjene posodobitve, zato morate pritisniti gumb za shranjevanje. Rad bi, da ima priloga vse, kar je trenutno v Excelovem listu.

To lahko dosežem z uporabo vgrajene funkcije e-pošte v Excelu, vendar sem želel gumb, saj moram trditi kodirati določen e-poštni naslov.

Torej, če povzamem, bi rad vedel:

Zanima me, ali obstaja način: potem, ko uporabnik odpre Excelov delovni zvezek in popravi, ali bo gumb ohranil prilogo s posodobitvami?
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan,
Koda je optimizirana. Prosimo, poskusite in hvala za vaš komentar.

Zasebni podukazni gumb1_Klik()
'Posodobil Extendoffice 2017 / 9 / 14
Zatemnite xOutApp kot objekt
Zatemni xOutMail kot objekt
Zatemni xMailBody kot niz
On Error Resume Next
Nastavi xOutApp = CreateObject("Outlook.Application")
Nastavi xOutMail = xOutApp.CreateItem(0)
ActiveWorkbook.Save
xMailBody = "Vsebina telesa" & vbNewLine & vbNewLine & _
"To je vrstica 1" & vbNewLine & _
"To je vrstica 2"
On Error Resume Next
Z xOutMail
.To = "E-poštni naslov"
.CC = ""
.BCC = ""
.Subject = "Preizkusite pošiljanje e-pošte s klikom na gumb"
.Telo = xMailBody
.Priloge.Dodaj ActiveWorkbook.FullName
.Prikaži ali uporabi .Pošlji
Končaj s
Ob napaki Pojdi na 0
Nastavite xOutMail = Nič
Nastavite xOutApp = Nič
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Kako lahko priložim aktivni delovni zvezek k e-pošti, ko pritisnem gumb?
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan,
Tik pod ".Body = xMailBody" dodajte naslednje
.Priloge.Dodaj ActiveWorkbook.FullName
Ta komentar je moderator na spletnem mestu minimiziral
Teria como em vez de enviar a planilha, enviar as informações em imagem?
Ta komentar je moderator na spletnem mestu minimiziral
ali se lahko s to kodo VBA sklicujem na podatke o celici v telesu e-pošte? Na primer, kako naj se sklicujem na vrednosti celic na spodnjo kodo?

xMailBody = "Vsebina telesa" & vbNewLine & vbNewLine & _
"To je vrstica 1" & vbNewLine & _
"To je vrstica 2"

Tudi z uporabo kode (.TO = "e-poštni naslov"). kako lahko "e-poštni naslov" izvlečem e-poštni naslov iz celice v stolpcu poleg njega.


Hvala,
Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče v isti delovni list dodati drugi gumb za e-pošto? Ko poskušam to narediti, se povezuje s kodo iz izvirnega gumba za e-pošto. hvala
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Vsakemu gumbu morate dodeliti različne kode.
Ta komentar je moderator na spletnem mestu minimiziral
ali se lahko s to kodo VBA sklicujem na podatke o celici v telesu e-pošte? Na primer, kako naj se sklicujem na vrednosti celic na spodnjo kodo?

xMailBody = "Vsebina telesa" & vbNewLine & vbNewLine & _
"To je vrstica 1" & vbNewLine & _
"To je vrstica 2"

Hvala,
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Glenn,
Prosimo, uporabite naslednjo kodo. Hvala za vaš komentar.
xMailBody = [B5]
Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče namesto pošiljanja priloge v e-pošti poslati hiperpovezavo do datoteke (ki se nahaja v SharePointu)?
Ta komentar je moderator na spletnem mestu minimiziral
Živijo Laurie,
Pri tem ti ne morem pomagati. Hvala za vaš komentar.
Ta komentar je moderator na spletnem mestu minimiziral
Ali se lahko sklicujem na vrednost v celici v zadevi z nizom? Kakšna različica spodaj?

.Subject = "Nov dogodek:" & Target.Address = "$B$38"
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Abi,
Prosimo, spremenite kodo v .Subject = "Nov dogodek:" & [B38].
Hvala za komentar.
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,
Mi lahko kdo pomaga pri naslednji zahtevi?
Imam Excelov list z dvema spustnima seznamoma.

1 spustni seznam- seznam oddelkov

2 spustni seznam- kategorija

Želim si, da izberem oddelek in kategorijo s seznamov; (na primer, če izberem "prodaja" v oddelku in "mesečno poročilo" v kategoriji)

Prodajni skupini moram po e-pošti poslati različico PDF tega delovnega lista z zadevo e-pošte mesečno poročilo.

Če na seznamu oddelkov izberem »proizvodnja«, bi moralo e-pošto iti skupini ljudi v produkciji.

Cenim, če mi lahko pomagate pri tem

Rasike
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Rasike,
Žal ti pri tem ne morem pomagati. Dobrodošli, da objavite kakršno koli vprašanje na našem forumu: https://www.extendoffice.com/forum.html če želite dobiti več podpore za Excel od strokovnjakov za Excel ali drugih oboževalcev Excela.
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Kako lahko zagotovim, da bo e-pošta samodejno dodala moj podpis iz Outlooka?
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo, John,
Spodnja koda VBA vam lahko pomaga rešiti težavo. Hvala za vaš komentar.

Zasebni podukazni gumb1_Klik()
'Posodobil Extendoffice 2019 / 6 / 26
Zatemnite xOutApp kot objekt
Zatemni xOutMail kot objekt
On Error Resume Next
Nastavi xOutApp = CreateObject("Outlook.Application")
Nastavi xOutMail = xOutApp.CreateItem(0)
Z xOutMail
.Prikaži ali uporabi .Pošlji
.To = "E-poštni naslov"
.CC = ""
.BCC = ""
.Subject = "Preizkusite pošiljanje e-pošte s klikom na gumb"
.HTMLBody = "To je testna e-pošta, ki se pošilja v Excelu" & "
" & .HTMLtelo
'.Pošlji
Končaj s
Ob napaki Pojdi na 0
Nastavite xOutMail = Nič
Nastavite xOutApp = Nič
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Ali morate biti uporabnik excela, ko pritisnete gumb za pošiljanje e-pošte? ali mora biti oseba, ki prejme e-pošto, uporabnik Outlooka?
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan,
Ker je treba e-pošto poslati prek Outlooka, potem ko kliknete gumb v Excelu, morate imeti Outlook nameščen v računalniku, da deluje.
Ta komentar je moderator na spletnem mestu minimiziral
Želim poslati Excelov delovni list v e-pošti, vendar ga ne pošlje. Kako napisati kodo za pošiljanje dokumenta kot e-pošto
Ta komentar je moderator na spletnem mestu minimiziral
Živjo marcus,
Spodnja koda VBA vam lahko pomaga rešiti težavo.

Sub SendWorkSheet()
'Posodobitev 20190626
Zatemni xFile kot niz
Dim xFormat As Long
Dim Wb kot delovni zvezek
Dim Wb2 kot delovni zvezek
Dim FilePath kot niz
Zatemni ime datoteke kot niz
Zatemnite OutlookApp kot objekt
Zatemnite OutlookMail kot predmet
On Error Resume Next
Application.ScreenUpdating = Napačno
Nastavite Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Nastavite Wb2 = Application.ActiveWorkbook
Izberite Case Wb.FileFormat
Primer xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Primer xlOpenXMLWorkbookMacroEnabled:
Če Wb2.HasVBProject Potem
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Konec Če
Primer Excel8:
xFile = ".xls"
xFormat = Excel8
Primer xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Konec Izberi
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Zdaj, "dd-mmm-yy h-mm-ss")
Nastavi OutlookApp = CreateObject("Outlook.Application")
Nastavi OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Z OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "funkcije kte"
.Body = "Preverite in preberite ta dokument."
.Priloge.Dodaj Wb2.FullName
.Prikaz
'.Pošlji
Končaj s
Wb2.Zapri
Kill FilePath & FileName & xFile
Nastavite OutlookMail = Nič
Nastavite OutlookApp = Nič
Application.ScreenUpdating = Res
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Kako lahko e-poštnemu sporočilu priložim aktivni delovni list, ko pritisnem gumb?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Grant,
Z desno miškino tipko kliknite gumb in izberite Ogled kode, nato kopirajte spodnjo kodo med vrsticama Private Sub in End Sub. Upam, da lahko pomagam. Hvala za vaš komentar.

Zatemni xFile kot niz
Dim xFormat As Long
Dim Wb kot delovni zvezek
Dim Wb2 kot delovni zvezek
Dim FilePath kot niz
Zatemni ime datoteke kot niz
Zatemnite OutlookApp kot objekt
Zatemnite OutlookMail kot predmet
On Error Resume Next
Application.ScreenUpdating = Napačno
Nastavite Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Nastavite Wb2 = Application.ActiveWorkbook
Izberite Case Wb.FileFormat
Primer xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Primer xlOpenXMLWorkbookMacroEnabled:
Če Wb2.HasVBProject Potem
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Konec Če
Primer Excel8:
xFile = ".xls"
xFormat = Excel8
Primer xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Konec Izberi
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Zdaj, "dd-mmm-yy h-mm-ss")
Nastavi OutlookApp = CreateObject("Outlook.Application")
Nastavi OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Z OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "funkcije kte"
.Body = "Preverite in preberite ta dokument."
.Priloge.Dodaj Wb2.FullName
.Prikaz
'.Pošlji
Končaj s
Wb2.Zapri
Kill FilePath & FileName & xFile
Nastavite OutlookMail = Nič
Nastavite OutlookApp = Nič
Application.ScreenUpdating = Res
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Ali obstaja način za spremembo imena datoteke na trenutni datum, ko je priložena e-pošti?
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Delal sem na listu, vendar ga ne morem dokončati. Upam, da mi lahko pomagaš :)

Datoteka sama mora biti xltm (predloga) in mora sama priložiti list v pošti.

In samodejni podpis, potem bi bil zelo vesel.

Hvala vnaprej /dr. Nang
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, vodim preglednico z 80 individualnimi računi in na tej strani sem zelo uspešno uporabil kodo VBA. Vendar pa bi rad v telesu e-pošte kopiral in prilepil določen obseg celic računa pri pošiljanju, tako da ima lahko odjemalec zgodovino. Ali lahko pomagate s kodo VBA za to?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo! Najlepša hvala za to. Bila je fantastična pomoč.

Ali je mogoče poslati aktiven delovni list s pritiskom na gumb namesto celotnega delovnega zvezka?

Hvala!
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije