Ugrás a tartalomra

Hogyan küldhetünk / küldhetünk cellatartományt az Outlook segítségével az Outlook segítségével?

Szenvedett-e már valamilyen problémát, amelyet a munkalapon végzett jelentés befejezése után el kell küldenie a munkalap számos cellájának, amely néhány fontos adatot tartalmaz az Ön címzettjének. Van-e olyan gyors módja annak, hogy e-mailben elküldhesse ezt a tartományt az Excelből az Outlook megnyitása nélkül?

Küldje el a cellatartományt mellékletként az Excelből VBA kóddal

Küldje el a cellatartományt törzsként az Excelből VBA kóddal


nyíl kék jobb buborékKüldje el a cellatartományt mellékletként az Excelből VBA kóddal

A következő VBA-kód segíthet abban, hogy a kiválasztott tartományt mellékletként küldje el az Excelben. Kérjük, tegye a következőket:

1. Nyissa meg a munkafüzetet, majd tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablak.

VBA-kód: cellatartomány küldése mellékletként az Excelből

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 = ""
    .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

Megjegyzések: A fenti kódban a következő információkat saját igénye szerint módosíthatja.

  • .To = ""
  • .CC = ""
  • .BCC = ""
  • .Subject = "a kte információi"
  • .Body = "hello, kérjük, ellenőrizze és olvassa el ezt a dokumentumot."

3. Ezután kattintson F5 gombot a kód futtatásához, és megjelenik egy felszólító mező, amely emlékeztetni fogja az elküldeni kívánt tartomány kiválasztására. Lásd a képernyőképet:

doc-send-range1

4. Ezután kattintson OK, és megjelenik egy prompt doboz, a folyamatjelző sáv befejezése után kattintson a gombra Hagyjuk, majd a meghatározott cellatartományt mellékletként elküldtük a címzettnek.

doc-send-range2


nyíl kék jobb buborékKüldje el a cellatartományt törzsként az Excelből VBA kóddal

Ha egy meghatározott tartományt szeretne küldeni az üzenet törzsének részeként az Excelből, akkor a következő VBA kódot is alkalmazhatja annak megoldására.

Kutools az Excel számára, Több mint 120 praktikus funkciókkal megkönnyíti a munkáját. 

1. Aktiválja a munkalapot, és tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablak.

VBA kód: küldje el a cellatartományt törzsként az Excelből

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 = ""
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Jegyzet: A fenti kódban a következő információkat az igényei szerint módosíthatja.

  • .Introduction = "Kérjük, olvassa el ezt az e-mailt."
  • .Item.To = ""
  • .Item.Subject = "a kte információi"

3. Ezután kattintson F5 gombot a kód futtatásához, és megjelenik egy felszólító mező, amely emlékeztetni fogja az elküldeni kívánt tartomány kiválasztására.

doc-send-range1

4. Ezután kattintson OK, és megjelenik egy prompt doboz, a folyamatjelző sáv befejezése után kattintson a gombra Hagyjuk, majd a meghatározott cellatartományt elküldtük a címzettnek, mint üzenet törzse.

doc-send-range2

Megjegyzések:

1. Ezek a kódok csak akkor érhetők el, ha az Outlook, mint levelező program.

2. Az aktuális munkalap elküldése után az Outlook programba lépve ellenőrizheti, hogy az e-mail küldése sikeres volt-e.


Kapcsolódó cikkek:

Hogyan küldhet munkalapot csak az Outlookon keresztül az Excelből?

Hogyan küldhetjük el a jelenlegi munkafüzetet az Outlook segítségével az Excelből?

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
Comments (27)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi,
Thank you for sharing the code.
How can I re-size the object to make it smaller on the email body?

Thank you so much
This comment was minimized by the moderator on the site
Hi,

I've done everything as above and the result is: all works perfectly apart of the button :) Don't really care about this at the moment :)

Huge thank you!!! topic closed :)
This comment was minimized by the moderator on the site
Thank you for this! I will test it soon as I'll back from holiday. Have one more question. Have an issue with running vba codes by using Activex button (no action at all) even if code works perfectly on edit mode or when run by ctrl+selected button from keyboard. I'm just starting vba journey and have no
idea what I'm doing wrong :/
This comment was minimized by the moderator on the site
Hello, pawerl
You just need to copy and paste the code into the Microsoft Visual Basic for Applications window, and then click the Run button from the tool bar as below screenshot shown: (Note: in the code, S1 is the cell contains the email address that you want to send the email to. Please change them to your need.)

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

Please try again!
This comment was minimized by the moderator on the site
Hej,

Mam plik z 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?
This comment was minimized by the moderator on the site
Hello, pawerl
To solve your problem, the below article may help you, please check it:

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

Thank you!
This comment was minimized by the moderator on the site
Can we fixed ranges ? in macro its self
This comment was minimized by the moderator on the site
Hello everyone
I have a project to select range in sheet 1 to be sent by email one by one to many emails addresses written in sheet 2 in column A and if column B is empty with a certain subject and after sending he write in sheet 2 column b sent
And to wait time 10 seconds to send the next email as the condition of the server
Any one help me please ?   
This comment was minimized by the moderator on the site
Hi, hriad, " if column B is empty with a certain subject and after sending he write in sheet 2 column b sent
And to wait time 10 seconds to send the next email as the condition of the server" I don't understand this. Please retell me about your requirement.
This comment was minimized by the moderator on the site
Hello Sunny
first of all , thanks for your help , as the server put a condition to not send many emails in the same second , I want to wait 10 seconds after sending first email and the following one.
This comment was minimized by the moderator on the site
Hi, hriad, please try below code, after runing it, it will pop out a dialog for selecting a range which you want to send, then it send to addresses in sheet 2 column A and with the subjects in column B. Every 10 seconds, send to one address. You can change the code "Please read this email" as you need.
<div data-tag="code">Sub SendEmailRange()

'UpdateByExtendoffice20220414

Dim WorkRng As Range

Dim xSU, EV As Boolean

Dim xWSh As Worksheet

Dim xCount As Integer

Dim xI As Integer

On Error Resume Next

xTitleId = "KutoolsforExcel"

'select a range that used to send as body

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

If WorkRng Is Nothing Then Exit Sub
WorkRng.Activate
WorkRng.Select

Set xWSh = ActiveWorkbook.Worksheets("Sheet2") 'the sheet that contains addresses and subjects

xCount = xWSh.UsedRange.Rows.Count

xSU = Application.ScreenUpdating

EV = ActiveWorkbook.EnvelopeVisible

Application.ScreenUpdating = False


For xI = 1 To xCount

If (xWSh.Range("A" & xI) = "") Then
Exit For
End If
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."

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

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

.Item.Send
End With
If (xI = xCount) Then

Exit For

End If

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

Next


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Sub

This comment was minimized by the moderator on the site
Hello Sunny
Many many Thanks for your effort.... Thanks a lot
This comment was minimized by the moderator on the site
Hello everyone
I have a project to select range in sheet 1 to be sent by email one by one to many emails addresses written in sheet 2 in column A and if column B is empty with a certain subject and after sending he write in sheet 2 column b sent
And to wait time 10 seconds to send the next email as the condition of the server
Any one help me please ?   
This comment was minimized by the moderator on the site
Hi I have a table set up that I want staff to fill in and then a command button that will then automatically generate an email, however I want the data from the table to be in the email body. Is there a code for that? 
Thank you 
This comment was minimized by the moderator on the site
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. Wie geht das in dem VBA-Code?
This comment was minimized by the moderator on the site
could we put as many email addresses to send to?
This comment was minimized by the moderator on the site
Hi, Carey, all above the VBAs can add many emails address (To, BCC, CC) to send to by using ; as separator. For instance,  .To = "; ; "
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations