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

Kako poslati / poslati obseg celic prek Outlook-a iz Excela?

Ste že kdaj imeli težave, ki jih morate po končanem poročilu na delovnem listu poslati v vrsto celic na tem delovnem listu, ki vsebujejo nekatere pomembne podatke za vašega določenega prejemnika. Ali obstajajo hitri načini za pošiljanje tega obsega iz Excela, ne da bi odprli Outlook?

Pošlji obseg celic kot prilogo iz Excela s kodo VBA

Pošlji obseg celic kot telo iz Excela s kodo VBA


puščica modri desni mehurčekPošlji obseg celic kot prilogo iz Excela s kodo VBA

Naslednja koda VBA vam lahko pomaga, da izbrani obseg pošljete kot prilogo v Excelu. Naredite to:

1. Odprite delovni zvezek in držite tipko ALT + F11 tipke za odpiranje Okno Microsoft Visual Basic for Applications.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Okno modula.

Koda VBA: pošlji obseg celic kot prilogo iz Excela

Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Opombe: V zgornji kodi lahko spremenite naslednje podatke po svojih željah.

  • .To = "skyyang @extendoffice.com "
  • .CC = ""
  • .BCC = ""
  • .Subject = "informacije o kte"
  • .Telo = "zdravo, preverite in preberite ta dokument."

3. Nato kliknite F5 tipko za zagon te kode in pojavilo se bo pozivno polje, ki vas bo opozorilo na izbiro obsega, ki ga želite poslati. Oglejte si posnetek zaslona:

doc-send-obseg1

4. Nato kliknite OK, in pojavilo se bo pozivno polje, po končani vrstici napredka kliknite Dovoli, nato pa je bil določen obseg celic prejemniku poslan kot priloga.

doc-send-obseg2


puščica modri desni mehurčekPošlji obseg celic kot telo iz Excela s kodo VBA

Če želite poslati določen obseg kot del telesa sporočila iz Excela, lahko za njegovo rešitev uporabite tudi naslednjo kodo VBA.

Kutools za Excel, z več kot 120 priročne funkcije, vam olajša delo. 

1. Aktivirajte svoj delovni list in držite tipko ALT + F11 tipke za odpiranje Okno Microsoft Visual Basic for Applications.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Okno modula.

Koda VBA: iz Excela pošlji vrsto celic kot telo

Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Opomba: V zgornji kodi lahko spremenite naslednje podatke po svojih željah.

  • .Introduction = "Preberite to e-pošto."
  • .Item.To = "skyyang @extendoffice.com "
  • .Item.Subject = "informacije o kte"

3. Nato kliknite F5 tipko za zagon te kode in pojavilo se bo pozivno polje, ki vas bo opozorilo na izbiro obsega, ki ga želite poslati.

doc-send-obseg1

4. Nato kliknite OK, in pojavilo se bo pozivno polje, po končani vrstici napredka kliknite Dovoli, nato pa je bil določen obseg celic poslan vašemu prejemniku kot telo sporočila.

doc-send-obseg2

Opombe:

1. Te kode so na voljo samo, če je Outlook vaš poštni program.

2. Po pošiljanju trenutnega delovnega lista se lahko v Outlooku prepričate, ali je bilo e-poštno sporočilo uspešno poslano.


Sorodni članki:

Kako poslati delovni list samo prek Outlooka iz Excela?

Kako poslati trenutno delovno knjigo prek Outlooka iz Excela?


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo 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-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila 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 miške za vas!
dno pisarniške mize
Komentarji (26)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, uporabljam oznako, ki izbere celice, potrebne za pošiljanje e-pošte. To sem združil z drugim makrom, tako da mi je uspelo odpreti "novo e-pošto", moja težava je zdaj, da če vneseš veliko informacij v eno celico, potem potrebuješ samo iformacijo, si ogledaš ne vseh informacij v tej celici nobenih idej ?? najlepša hvala za vašo pomoč pri tem na zdravje
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi skupaj
Imam projekt za izbiro obsega na listu 1, ki se bo poslal po e-pošti enega za drugim na več e-poštnih naslovov, napisanih na listu 2 v stolpcu A in če je stolpec B prazen z določeno zadevo in po pošiljanju napiše v list 2 stolpec b poslano
In počakati čas 10 sekund za pošiljanje naslednje e-pošte kot pogoj strežnika
Mi kdo pomaga prosim?   
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, ali mi lahko prosim sporočite, kako dodati podpis in drugo uvodno vrstico v to pošto za drugi program. Hvala vnaprej.
Ta komentar je moderator na spletnem mestu minimiziral
lepo in uporabno, dobro opravljeno!!!
Ta komentar je moderator na spletnem mestu minimiziral
Zelo uporabno. Hvala vam . Na istem listu imam seznam e-poštnih naslovov. Ko sem kliknil na en e-poštni naslov, bo izbran obseg celic poslan kot priloga temu e-poštnemu sporočilu. Mi lahko prosim pomagate pri tem? Najlepša hvala.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, zelo lepo razloženo. Namesto pošiljanja novega delovnega zvezka lahko samo kopiramo in prilepimo izbrani obseg v telo e-pošte in ga pošljemo. Ne želim poslati izbranega obsega kot sliko. Želim poslati kot pregled tabele v telesu e-pošte. Ali lahko to storimo??
Ta komentar je moderator na spletnem mestu minimiziral
Hvala, to je zelo uporabno, a kaj, če moram dodati nekaj opisa v telo pošte, preden ga pošljem. Predlagajte kodo.
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Vse izgleda dobro, vendar ne daje meje izbranega obsega, ali lahko predlagate.
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala, tako dolgo sem našel to rešitev.
Ta komentar je moderator na spletnem mestu minimiziral
Odlično delo. Bolje bi bilo, da se to samodejno pošlje. Kaj naj storim, da pred nadaljevanjem pošiljanja ne prikaže sporočilo o napaki?
Ta komentar je moderator na spletnem mestu minimiziral
bi lahko dali na toliko e-poštnih naslovov za pošiljanje?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Carey, vsi zgornji VBA-ji lahko dodajo veliko e-poštnih naslovov (Za, BCC, CC), na katere jih želite poslati z uporabo ; kot ločilo. Na primer, .To = "skyyang@extendoffice.com; test1@extendoffice.com; test2@extendoffice.com "
Ta komentar je moderator na spletnem mestu minimiziral
ich möchte das kopierte nicht als Datei in eine E-Mail einfügen, sondern per copy and paste in die E-Mail einfügen. Ali ste v VBA-kodi?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, imam nastavljeno tabelo, ki jo želim izpolniti osebje, in nato ukazni gumb, ki bo nato samodejno ustvaril e-pošto, vendar želim, da so podatki iz tabele v telesu e-pošte. Ali obstaja koda za to? 
Hvala 
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi skupaj
Imam projekt za izbiro obsega na listu 1, ki se bo poslal po e-pošti enega za drugim na več e-poštnih naslovov, napisanih na listu 2 v stolpcu A in če je stolpec B prazen z določeno zadevo in po pošiljanju napiše v list 2 stolpec b poslano
In počakati čas 10 sekund za pošiljanje naslednje e-pošte kot pogoj strežnika
Mi kdo pomaga prosim?   
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi skupaj
Imam projekt za izbiro obsega na listu 1, ki se bo poslal po e-pošti enega za drugim na več e-poštnih naslovov, napisanih na listu 2 v stolpcu A in če je stolpec B prazen z določeno zadevo in po pošiljanju napiše v list 2 stolpec b poslano
In počakati čas 10 sekund za pošiljanje naslednje e-pošte kot pogoj strežnika
Mi kdo pomaga prosim?   
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, hriad, "če je stolpec B prazen z določeno zadevo in po pošiljanju vpiše v list 2 stolpec b poslano
In počakati čas 10 sekund za pošiljanje naslednje e-pošte kot pogoj strežnika" Tega ne razumem. Prosim, povejte mi o svoji zahtevi.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni Sunny
najprej hvala za pomoč, saj je strežnik postavil pogoj, da ne pošilja veliko e-pošte v isti sekundi, želim počakati 10 sekund po pošiljanju prvega in naslednjega e-pošte.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, hriad, poskusite spodnjo kodo, ko jo zaženete, se prikaže pogovorno okno za izbiro obsega, ki ga želite poslati, nato pa pošlje na naslove v listu 2 stolpca A in s temi v stolpcu B. Vsakih 10 sekund , pošljite na en naslov. Kodo »Preberite to e-pošto« lahko po potrebi spremenite.
Sub SendEmailRange()

'UpdateByExtendoffice20220414

Dim WorkRng As Range

Dim xSU, EV kot Boolean

Dim xWSh kot delovni list

Dim xCount kot celo število

Dim xI kot celo število

On Error Resume Next

xTitleId = "KutoolsforExcel"

'izberite obseg, ki se je uporabljal za pošiljanje kot telo

Nastavi WorkRng = Application.InputBox("Range", xTitleId, Application.Selection.Address, , , , , 8)

Če WorkRng ni nič, zapustite Sub
WorkRng.Aktiviraj
WorkRng.Izberi

Nastavite xWSh = ActiveWorkbook.Worksheets("Sheet2") 'list, ki vsebuje naslove in teme

xCount = xWSh.UsedRange.Rows.Count

xSU = Application.ScreenUpdating

EV = ActiveWorkbook.EnvelopeVisible

Application.ScreenUpdating = Napačno


Za xI = 1 do xCount

Če (xWSh.Range("A" & xI) = "") Potem
Izhod za
Konec Če
ActiveWorkbook.EnvelopeVisible = True
Z ActiveSheet.MailEnvelope
.Introduction = "Preberite to e-pošto."

.Item.To = xWSh.Range("A" & xI)

.Item.Subject = xWSh.Range("B" & xI)

.Predmet.Pošlji
Končaj s
Če (xI = xCount) Potem

Izhod za

Konec Če

Application.Wait Now + TimeValue("0:00:10")

Naslednji


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Sub

Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni Sunny
Najlepša hvala za vaš trud... Najlepša hvala
Ta komentar je moderator na spletnem mestu minimiziral
Ali lahko določimo razpone? v makro sami
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni,

Mam plik s 6 arkuszami. Każdy z arkuszy 2-6 musi zostać wysłany do innej grupy odbiorców jako załącznik excela. Czy da się to podpiąć pod 5 przycisków?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljen, pawerl
Za rešitev vaše težave vam lahko pomaga spodnji članek, preverite ga:

https://www.extendoffice.com/documents/excel/7178-send-each-sheet-to-different-email.html

Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Hvala ti za to! Bom preizkusil kmalu, ko se vrnem z dopusta. Še eno vprašanje. Imate težave z izvajanjem kod vba z uporabo gumba Activex (brez dejanja), tudi če koda deluje popolnoma v načinu za urejanje ali ko jo zaženete s ctrl+izbranim gumbom na tipkovnici. Pravkar začenjam pot vba in nimam št
ideja kaj delam narobe :/
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljen, pawerl
Kodo morate samo kopirati in prilepiti v Microsoft Visual Basic za aplikacije in nato kliknite Run v orodni vrstici, kot je prikazano na spodnjem posnetku zaslona: (Opombe: v kodi, S1 celica vsebuje e-poštni naslov, na katerega želite poslati e-pošto. Spremenite jih po svojih potrebah.)

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-emails.png

Prosim poskusite ponovno!
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Naredil sem vse, kot je navedeno zgoraj, in rezultat je: vse deluje brezhibno, razen gumba :) Naj me to trenutno ne zanima :)

Najlepša hvala!!! tema zaprta :)
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL