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

Hoe celbereik verzenden / e-mailen via Outlook vanuit Excel?

Heeft u ooit een probleem gehad dat u na het voltooien van een rapport in een werkblad naar een reeks cellen in dit werkblad moet sturen die belangrijke gegevens naar uw specifieke ontvanger bevatten? Zijn er snelle manieren om dit bereik vanuit Excel te e-mailen zonder Outlook te openen?

Stuur celbereik als bijlage vanuit Excel met VBA-code

Stuur celbereik als body vanuit Excel met VBA-code


pijl blauw rechts belStuur celbereik als bijlage vanuit Excel met VBA-code

De volgende VBA-code kan u helpen om uw geselecteerde bereik als bijlage in Excel te verzenden. Doe dit als volgt:

1. Open uw werkmap en houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: stuur celbereik als bijlage vanuit Excel

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

Opmerking:: In de bovenstaande code kunt u de volgende informatie naar eigen behoefte wijzigen.

  • .To = "skyyang @extendoffice.com "
  • .CC = ""
  • .BCC = ""
  • .Subject = "informatie van kte"
  • .Body = "hallo, controleer en lees dit document."

3. Dan klikken F5 toets om deze code uit te voeren, en er verschijnt een promptvenster om u eraan te herinneren een bereik te selecteren dat u wilt verzenden. Zie screenshot:

doc-verzendbereik1

4. Dan klikken OK, en een promptvenster verschijnt, nadat de voortgangsbalk is voltooid, klikt u op Allow, en vervolgens is het specifieke celbereik als bijlage naar uw ontvanger verzonden.

doc-verzendbereik2


pijl blauw rechts belStuur celbereik als body vanuit Excel met VBA-code

Als u een specifiek bereik wilt verzenden als onderdeel van de berichttekst vanuit Excel, kunt u ook de volgende VBA-code toepassen om het op te lossen.

Kutools for Excel, met meer dan 120 handige functies, maakt uw werk gemakkelijker. 

1. Activeer je werkblad en houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: stuur cellenbereik als hoofdtekst vanuit Excel

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

Opmerking: In de bovenstaande code kunt u de volgende informatie naar wens wijzigen.

  • .Introduction = "Lees deze e-mail."
  • .Item.To = "skyyang @extendoffice.com "
  • .Item.Subject = "informatie van kte"

3. Dan klikken F5 toets om deze code uit te voeren, en er verschijnt een promptvenster om u eraan te herinneren dat u een bereik moet selecteren dat u wilt verzenden.

doc-verzendbereik1

4. Dan klikken OK, en een promptvenster verschijnt, nadat de voortgangsbalk is voltooid, klikt u op Allow, en vervolgens is het specifieke celbereik als berichttekst naar uw ontvanger verzonden.

doc-verzendbereik2

Opmerkingen:

1. Deze codes zijn alleen beschikbaar als Outlook uw e-mailprogramma is.

2. Nadat u het huidige werkblad heeft verzonden, kunt u naar uw Outlook gaan om te controleren of de e-mail met succes is verzonden.


Gerelateerde artikelen:

Hoe stuur ik een werkblad alleen via Outlook vanuit Excel?

Hoe verzend ik de huidige werkmap via Outlook vanuit Excel?


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (21)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik gebruik de marco die de cellen selecteert die nodig zijn om te e-mailen. ik heb dit gecombineerd met een andere macro zodat ik een "nieuwe e-mail" kan openen. Mijn probleem is nu dat als je veel informatie in één cel stopt, je alleen de formule nodig hebt om niet alle informatie in die cel te bekijken ideeën ?? heel erg bedankt voor je hulp bij deze proost
Deze opmerking is gemaakt door de moderator op de site
dag iedereen
Ik heb een project om het bereik in blad 1 te selecteren dat één voor één per e-mail moet worden verzonden naar veel e-mailadressen geschreven in blad 2 in kolom A en als kolom B leeg is met een bepaald onderwerp en na verzending schrijft hij in blad 2 kolom b verzonden
En om 10 seconden te wachten om de volgende e-mail te verzenden als de toestand van de server
Iemand me alsjeblieft helpen?   
Deze opmerking is gemaakt door de moderator op de site
Hallo, Kunt u mij alstublieft laten weten hoe ik een handtekening en een tweede introductieregel kan toevoegen aan deze mail voor het tweede programma. Bij voorbaat dank.
Deze opmerking is gemaakt door de moderator op de site
leuk en handig, goed bezig!!!
Deze opmerking is gemaakt door de moderator op de site
Zeer nuttig. Dank u . Ik heb een lijst met e-mailadressen op hetzelfde blad. Wanneer ik op één e-mailadres heb geklikt, wordt het geselecteerde celbereik als bijlage bij deze e-mail verzonden. Kunt u mij hierbij helpen? Hartelijk dank.
Deze opmerking is gemaakt door de moderator op de site
Hallo, Heel mooi uitgelegd. In plaats van een nieuwe werkmap te verzenden, kunnen we alleen het geselecteerde bereik kopiëren en in de hoofdtekst van de e-mail plakken en verzenden. Ik wil het geselecteerde bereik niet als afbeelding verzenden. Ik wil een tabelweergave in de hoofdtekst van de e-mail verzenden. Kunnen we dat doen??
Deze opmerking is gemaakt door de moderator op de site
Bedankt, dit is erg handig, maar wat als ik een beschrijving in de hoofdtekst van de e-mail moet toevoegen voordat ik deze verzend. Stel de code voor.
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Alles ziet er goed uit, maar geeft niet het door de grens geselecteerde bereik. Kunt u een suggestie doen?
Deze opmerking is gemaakt door de moderator op de site
Heel erg bedankt, ik vind deze oplossing al zo lang.
Deze opmerking is gemaakt door de moderator op de site
Goed gedaan. Het zou beter zijn als dit automatisch wordt verzonden. Wat moet ik doen om te voorkomen dat er een fout wordt weergegeven voordat het verzenden wordt hervat?
Deze opmerking is gemaakt door de moderator op de site
kunnen we zoveel e-mailadressen plaatsen om naar te verzenden?
Deze opmerking is gemaakt door de moderator op de site
Hallo, Carey, alle bovenstaande VBA's kunnen veel e-mailadressen (Aan, BCC, CC) toevoegen om naar te verzenden met behulp van ; als scheidingsteken. Bijvoorbeeld .To = "skyyang@extendoffice.com; test1@extendoffice.com; test2@extendoffice.com "
Deze opmerking is gemaakt door de moderator op de site
ich möchte das kopierte nicht als datum in een e-mail einfügen, sondern per kopiëren en plakken in die e-mail einfügen. Wie zit er in de VBA-code?
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik heb een tabel opgesteld die ik wil dat het personeel invult en vervolgens een opdrachtknop die vervolgens automatisch een e-mail genereert, maar ik wil dat de gegevens uit de tabel in de hoofdtekst van de e-mail staan. Is daar een code voor? 
Bedankt 
Deze opmerking is gemaakt door de moderator op de site
dag iedereen
Ik heb een project om het bereik in blad 1 te selecteren dat één voor één per e-mail moet worden verzonden naar veel e-mailadressen geschreven in blad 2 in kolom A en als kolom B leeg is met een bepaald onderwerp en na verzending schrijft hij in blad 2 kolom b verzonden
En om 10 seconden te wachten om de volgende e-mail te verzenden als de toestand van de server
Iemand me alsjeblieft helpen?   
Deze opmerking is gemaakt door de moderator op de site
dag iedereen
Ik heb een project om het bereik in blad 1 te selecteren dat één voor één per e-mail moet worden verzonden naar veel e-mailadressen geschreven in blad 2 in kolom A en als kolom B leeg is met een bepaald onderwerp en na verzending schrijft hij in blad 2 kolom b verzonden
En om 10 seconden te wachten om de volgende e-mail te verzenden als de toestand van de server
Iemand me alsjeblieft helpen?   
Deze opmerking is gemaakt door de moderator op de site
Hallo, hriad, " als kolom B leeg is met een bepaald onderwerp en na het verzenden schrijft hij in blad 2 kolom b verzonden
En om 10 seconden te wachten om de volgende e-mail te verzenden als de toestand van de server "Ik begrijp dit niet. Vertel me alstublieft opnieuw over uw vereiste.
Deze opmerking is gemaakt door de moderator op de site
Hallo Sunny
allereerst bedankt voor je hulp, aangezien de server een voorwaarde heeft gesteld om niet veel e-mails in dezelfde seconde te verzenden, wil ik 10 seconden wachten na het verzenden van de eerste e-mail en de volgende.
Deze opmerking is gemaakt door de moderator op de site
Hallo, hriad, probeer de onderstaande code. Nadat je het hebt uitgevoerd, verschijnt er een dialoogvenster voor het selecteren van een bereik dat je wilt verzenden, en vervolgens wordt het verzonden naar adressen in blad 2 kolom A en met de onderwerpen in kolom B. Elke 10 seconden , naar één adres sturen. U kunt de code "Lees deze e-mail" naar behoefte wijzigen.
Sub SendEmailRange()

'Bijwerken door'Extendoffice20220414

Dim WorkRng As Range

Dim xSU, EV As Boolean

Dim xWSh als werkblad

Dim x Tellen als geheel getal

Dim xI als geheel getal

On Error Resume Next

xTitleId = "KutoolsforExcel"

'selecteer een bereik dat vroeger als body werd verzonden'

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

Als WorkRng niets is, sluit dan Sub af
WorkRng.Activeren
WorkRng.Select

Set xWSh = ActiveWorkbook.Worksheets("Blad2") 'het blad dat adressen en onderwerpen bevat

xCount = xWSh.UsedRange.Rows.Count

xSU = Application.ScreenUpdating

EV = ActiveWorkbook.EnvelopeVisible

Application.ScreenUpdating = False


Voor xI = 1 Tot xCount

If (xWSh.Bereik("A" & xI) = "") Dan
Afsluiten voor
End If
ActiveWorkbook.EnvelopeVisible = True
Met ActiveSheet.MailEnvelope
.Introduction = "Lees deze e-mail."

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

.Item.Onderwerp = xWSh.Bereik ("B" & xI)

.Artikel.Verzenden
Eindigt met
Als (xI = xCount) Dan

Afsluiten voor

End If

Applicatie.Wacht nu + TimeValue("0:00:10")

Volgende


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Sub

Deze opmerking is gemaakt door de moderator op de site
Hallo Sunny
Heel veel bedankt voor je moeite.... Heel erg bedankt
Deze opmerking is gemaakt door de moderator op de site
Kunnen we vaste bereiken? in macro zelf
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties