Direkt zum Inhalt

Excel-Tutorial – Senden Sie E-Mails aus Excel

Normalerweise verwenden wir E-Mail-Clients wie Outlook, Gmail usw., um E-Mails zu versenden. Aber viele Leute speichern Daten in Excel-Arbeitsmappen und müssen einige Daten an andere weitergeben, während sie damit arbeiten. Daher müssen sie E-Mails direkt aus der Excel-Arbeitsmappe senden, was die Zeit für den Betrieb eines E-Mail-Clients spart. Dieses Schritt-für-Schritt-Tutorial zeigt Ihnen, wie Sie E-Mails aus Excel unter verschiedenen Bedingungen versenden.

Note: Bevor Sie die folgenden Methoden anwenden, müssen Sie einen Outlook-E-Mail-Client auf Ihrem Computer konfigurieren und als Standard-E-Mail-Client festlegen.

Table of Contents: [ Ausblenden ]

(Klicken Sie auf eine beliebige Überschrift im Inhaltsverzeichnis unten oder rechts, um zum entsprechenden Kapitel zu navigieren.)

1. Die Grundlagen zum Versenden von E-Mails aus Excel

In diesem Abschnitt werden die Grundlagen zum Senden von E-Mails aus Excel eingeführt.

1.1 Senden Sie E-Mails aus Excel mit den in Excel integrierten Funktionen

Wenn Sie nur einfache E-Mails aus Excel senden möchten, die nur die Felder „An“, „Betreff“, „Cc“ und „Text“ enthalten. Die eingebauten Funktionen in Excel können dabei helfen.


1.1.1 E-Mail aus Excel mit einer Formel senden

Wie in der folgenden Tabelle gezeigt, können Sie zum Senden verschiedener E-Mails aus Excel basierend auf den angegebenen Feldern die Zellreferenzen der angegebenen Felder verwenden, um verschiedene Hyperlink-Formeln zu erstellen, um dies zu erreichen. Nachdem Sie die E-Mail-Hyperlinks erstellt haben, können Sie auf den Hyperlink klicken, den Sie benötigen, um automatisch eine E-Mail zu senden.

Hinweis: Wenn in den Feldern „An“ oder „Cc“ mehrere Empfänger angegeben sind, trennen Sie diese bitte mit Semikolons.

Dieser Abschnitt ist in vier Teile unterteilt, um Ihnen die Schritte zum separaten Hinzufügen von E-Mail-Adresse, Cc-Empfänger(n), Betreffzeile und Textkörper zur Hyperlink-Formel zu zeigen. Bitte gehen Sie wie folgt vor.

Die Syntax und Argumente der HYPERLINK Funktion sind wie folgt.

Syntax

HYPERLINK(link_location, [friendly_name])

Argumente

Link_Standort (erforderlich): Pfad und Dateiname des zu öffnenden Dokuments;
Tipps: In diesem Tutorial sollten alle Felder, die wir für eine E-Mail benötigen, wie die E-Mail-Adresse des Empfängers, der/die Cc-Empfänger, die Betreffzeile und der Textkörper, in das erste Argument „link_location“ eingefügt werden.
Freundlicher_Name (optional): Der Sprungwert, der in der Zelle angezeigt wird.

1.1.1.1 E-Mail-Adresse zur Hyperlink-Formel hinzufügen

Hier verwenden wir "mailto:" als Teil der Formel zum Hinzufügen eines E-Mail-Empfängers. In diesem Beispiel befindet sich die E-Mail-Adresse des ersten Empfängers in Zelle B2, also müssen wir „mailto:“ hinzufügen und auf Zelle B2 verweisen.

„mailto:“&B2

1. Wählen Sie eine Zelle aus, um den Hyperlink anzuzeigen. In diesem Fall wähle ich die Zelle F2 aus.

2. Geben Sie dann die folgende Formel ein.

=HYPERLINK("mailto:"&B2)

Note: Wenn Sie die drücken Enter drücken, wird ein Hyperlink erstellt, wie im Screenshot unten gezeigt. Wenn Sie auf den Link klicken, wird eine Outlook-E-Mail erstellt und die E-Mail-Adresse des Empfängers automatisch in das Feld „An“ eingetragen.

Die E-Mail-Adresse des Empfängers wird nun der Hyperlink-Formel hinzugefügt. Bitte fahren Sie mit den folgenden Schritten fort, um die Betreffzeile, Cc-Empfänger und den Nachrichtentext nach Bedarf hinzuzufügen.


1.1.1.2 Cc-Empfänger zur Hyperlink-Formel hinzufügen

Um den/die Cc-Empfänger zur Hyperlink-Funktion hinzuzufügen, bitte hinzufügen "?cc=" als Teil der Formel wie folgt.

"?cc=" & C2
wobei C2 die E-Mail-Adresse des cc-Empfängers enthält.

Die Formel in Zelle F2 sollte wie folgt lauten:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2)


1.1.1.3 Betreffzeile zur Hyperlink-Formel hinzufügen

Um die Betreffzeile zur Hyperlink-Funktion hinzuzufügen, bitte hinzufügen "&subject=" als Teil der Formel wie folgt.

"&subject="& D2
wobei C2 den E-Mail-Betreff enthält.

Die Formel in Zelle F2 sollte nun wie folgt aussehen:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1.1.1.4 Fließtext mit Zeilenumbrüchen zur Hyperlink-Formel hinzufügen

Der letzte Schritt besteht darin, den Haupttext zur Hyperlink-Formel hinzuzufügen. Wie Sie im Beispiel sehen können, sind zwei Textzeilen in E2 durch einen Zeilenumbruch getrennt, und Sie möchten den Zeilenumbruch im E-Mail-Text beibehalten. Erkennt Outlook in diesem Fall den Zeilenumbruch? Lass es uns überprüfen.

Um den Haupttext zur Hyperlink-Formel hinzuzufügen, müssen Sie hinzufügen „&body=“ als Teil der Formel wie folgt.

"&body="& E2
wobei E2 den Text der E-Mail enthält.

Die Formel in Zelle F2 wird nun wie folgt angezeigt:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

Hinweis: Wenn Sie die Taste Enter Schlüssel und klicken Sie auf den Link. Sie können in der neuen E-Mail sehen, dass die Inhalte im E-Mail-Text in derselben Zeile angezeigt werden.

Um den E-Mail-Text in separaten Zeilen anzuzeigen, müssen Sie den Zelleninhalt ändern, indem Sie den Wagenrücklaufzeichencode hinzufügen % 0A an den Text, wo Sie einen Zeilenumbruch einfügen müssen. Siehe Screenshot:


1.1.1.5 Geben Sie den Text an, der für den Hyperlink angezeigt werden soll

In den obigen Schritten haben wir das Link_location-Argument mit E-Mail-Feldern abgeschlossen. Hier in diesem Abschnitt werden wir das nächste Argument [friendly_name] beenden.

In diesem Fall möchte ich, dass die Hyperlink-Zelle den Text als „E-Mail an xx“, wobei xx der Name des Empfängers in A2 ist. Die Formel in F2 sollte also geändert werden in:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)

Drücken Sie auf Enter Schlüssel, um das Ergebnis zu erhalten.

Wählen Sie diese Formelzelle aus und ziehen Sie sie AutoFill-Griff nach unten, um andere E-Mail-Hyperlinks zu erstellen. Siehe Screenshot:


1.1.2 E-Mail aus Excel mit der Hyperlink-Funktion versenden

Abgesehen von der Verwendung der obigen Hyperlink-Formel können Sie manuell einen E-Mail-Hyperlink mit erstellen Insert Hyperlink Funktion in Excel. Dieser Abschnitt zeigt Ihnen die Schritte.

1. Klicken Sie mit der rechten Maustaste auf eine E-Mail, in die Sie einen Hyperlink einfügen möchten, und wählen Sie sie aus Link aus dem Kontextmenü.

2. Beim Auftauchen Hyperlink einsetzen Dialogfeld müssen Sie wie folgt konfigurieren.

2.1) Wählen Sie E-Mail-Addresse im linken Bereich.
2.2) In der Text zum Anzeigen Textfeld, geben Sie den Text ein, den Sie in der Zelle anzeigen möchten;
Tips: Sie können in diesem Dialogfeld keine Zellbezüge verwenden, daher sollten Sie die E-Mail-Felder wie folgt manuell eingeben.
2.3) In der E-Mail-Addresse Textfeld müssen Sie die folgenden E-Mail-Adressen eingeben.
mailto: E-Mail-Adresse
Bitte ersetzen Sie den Text „E-Mail-Addresse“ mit Ihrer echten E-Mail-Adresse. Wenn Sie mehr als eine E-Mail-Adresse haben, trennen Sie diese durch Semikolon.
2.4) In der Betreff Textfeld können Sie hier Ihren E-Mail-Betreff und E-Mail-Text angeben. Bitte konfigurieren Sie wie folgt:
E-Mail-Betreff&Body=E-Mail-Text
In diesem Fall tippe ich ein Monatlicher Verkauf&body=Hallo,%0AEmail erhalten.
> wo das Thema Monatlicher Verkauf ist;
und
> Der E-Mail-Text lautet:
Hallo,
Email erhalten. (% 0A ist der Wagenrücklaufzeichencode, der von Outlook erkannt werden kann)
2.5) Klicken Sie auf OK Schaltfläche, um den Hyperlink zu speichern. Siehe Screenshot:

Wenn Sie auf den Hyperlink klicken, wird eine Outlook-E-Mail mit den angegebenen Feldern „An“, „Betreff“ und „Text“ erstellt, wie im folgenden Screenshot gezeigt.

Notizen:

1) Bei dieser Methode mussten Sie die E-Mail-Hyperlinks jeweils manuell erstellen.
2) Mit dieser Methode können Sie das Cc-Feld nicht zu E-Mails hinzufügen. Wenn Sie also das Cc-Feld benötigen, fügen Sie es bitte aus dem neu öffnenden E-Mail-Fenster hinzu.

1.2 E-Mail an mehrere Empfänger in Zellen mit VBA-Skript senden

Im obigen Beispiel sehen Sie, dass mehrere E-Mail-Adressen in einer Zelle angezeigt werden, getrennt durch Semikolons. Wenn Sie eine Liste mit E-Mail-Adressen haben, wie im folgenden Screenshot gezeigt, und an alle eine E-Mail oder eine unabhängige E-Mail senden möchten, kann Ihnen der folgende VBA-Code einen Gefallen tun.


1.2.1 Senden Sie eine E-Mail an mehrere Empfänger in Zellen mit VBA-Skript

1. In dem Arbeitsblatt, das alle E-Mail-Adressen enthält, an die Sie die E-Mail senden möchten. Drücken Sie die Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul, und fügen Sie dann den folgenden Code in die Modul (Code) Fenster.

VBA-Code: E-Mail an eine Liste von E-Mail-Adressen senden

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3. Drücken Sie die Taste F5 Schlüssel zum Ausführen des Codes und a Kutools for Excel Dialogfeld erscheint. Wählen Sie die Liste der E-Mail-Adressen aus und klicken Sie auf OK.

Anmerkungen:

1) Wenn Sie nicht möchten, dass das obige Dialogfeld angezeigt wird, und den Bereich der E-Mail-Adressen direkt im Code angeben möchten, ersetzen Sie bitte diese Zeile:
Set xRg = Application.InputBox("Bitte wählen Sie die Adressliste aus:", "Kutools for Excel", xTxt, , , , , 8)
mit
Setze xRg = Range("A2:A7")
2) Sie können Ihren eigenen E-Mail-Betreff und -Text in den folgenden Zeilen angeben:
.Betreff = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Um die E-Mail direkt zu senden, ohne das folgende neue Nachrichtenfenster zu öffnen, müssen Sie diese Zeile ersetzen:
.Anzeige
mit
.Senden

Nach dem Ausführen des Codes werden alle E-Mail-Adressen im ausgewählten Bereich im Feld „An“ des Nachrichtenfensters angezeigt. Siehe Screenshot:


1.2.2 Senden Sie E-Mails separat an jeden Empfänger, der in den Zellen mit VBA-Skript aufgeführt ist

Der obige Code fügt alle E-Mail-Adressen im ausgewählten Bereich zum Feld „An“ des Nachrichtenfensters hinzu. Wenn Sie E-Mails an jede in den Zellen aufgeführte E-Mail-Adresse separat senden möchten, ohne dass sie die E-Mail-Adressen der anderen sehen, können Sie das folgende VBA-Skript ausprobieren.

1. In dem Arbeitsblatt, das alle E-Mail-Adressen enthält, an die Sie die E-Mails senden möchten. Drücken Sie die Andere + F11 Schlüssel zu Öffnen Sie das Microsoft Visual Basic für Applikationen-Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul, und fügen Sie dann den folgenden Code in das Fenster Modul (Code) ein.

VBA-Code: Senden Sie E-Mails separat an jede E-Mail-Adresse, die in den Zellen aufgeführt ist

Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

3. Dann klick Tools > Referenzen. Im Referenzen - VBAProject Dialogfeld, suchen und überprüfen Sie die Microsoft Outlook 16.0-Objektbibliothek und klicken Sie dann auf OK Schaltfläche, um die Änderungen zu speichern.

4. Drücken Sie die Taste F5 Schlüssel zum Ausführen des Codes und a Kutools for Excel Dialogfeld erscheint. Wählen Sie die Liste der E-Mail-Adressen aus und klicken Sie auf OK.

Anmerkungen:

1) Wenn Sie nicht möchten, dass das obige Dialogfeld angezeigt wird, und den Bereich der E-Mail-Adressen direkt im Code angeben möchten, ersetzen Sie bitte diese Zeile:
Set xRg = Application.InputBox("Bitte wählen Sie die Adressliste aus:", "Kutools for Excel", xTxt, , , , , 8)
mit
Setze xRg = Range("A2:A7")
2) Sie können Ihren eigenen E-Mail-Betreff und -Text in den folgenden Zeilen angeben:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Um die E-Mail direkt zu versenden, ohne die folgenden Nachrichtenfenster zu öffnen, müssen Sie diese Zeile ersetzen:
.Anzeige
mit
.Senden

In diesem Beispiel gibt es sechs E-Mail-Adressen im ausgewählten Bereich, sodass automatisch sechs Outlook-Nachrichtenfenster mit separaten E-Mail-Adressen im Feld „An“ erstellt werden, wie im folgenden Screenshot gezeigt.

5. Klicken Sie zum Schluss auf Absenden Schaltfläche, um die E-Mail einzeln zu senden.


2. Anhänge oder Outlook-Signatur in die von Excel gesendeten E-Mails einfügen (mit VBA-Skripten)

Dieser Abschnitt zeigt Ihnen, wie Sie Anhänge oder Outlook-Standardsignaturen in die von Excel gesendeten E-Mails einfügen.

2.1 Fügen Sie Anhänge in die von Excel gesendeten E-Mails ein

Hier beschreiben wir die verschiedenen Fälle des Einfügens von Anhängen, und Sie können die Methode nach Ihren Bedürfnissen auswählen. In diesem Abschnitt können Sie lernen (klicken Sie auf einen der folgenden Links, um zur entsprechenden Methode zu navigieren):


2.1.1 Eine bestimmte Datei als Anhang per E-Mail versenden

Sie können den folgenden VBA-Code anwenden, um eine oder mehrere Dateien in einem Ordner als Anhänge von Excel per E-Mail zu senden.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden VBA-Code in das Fenster Modul (Code) ein.

VBA-Code: E-Mail-Dateien in einem Ordner als Anhänge von Excel

Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .BodyFormat = olFormatRichText
            .To = ""
            .Subject = "test"
            .HTMLBody = "test"
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Notizen:

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse Ihres eigenen Empfängers;
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "test" und .HTMLBody = "test";
3) Sie können Cc- und Bcc-Empfänger nach Bedarf hinzufügen. Fügen Sie einfach die folgenden zwei Zeilen unter der Zeile hinzu.Zu = .
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"

3. Dann klick Tools > Referenzen. Im Referenzen - VBAProject Dialogfeld, suchen und überprüfen Sie die Microsoft Outlook 16.0-Objektbibliothek und klicken Sie dann auf OK Schaltfläche, um die Änderungen zu speichern.

4. Drücken Sie die Taste F5 Schlüssel zum Ausführen des Codes, dann a Entdecken Fenster erscheint, wählen Sie bitte die Dateien aus, die Sie an die E-Mail anhängen möchten, und klicken Sie dann auf OK.

Dann öffnet sich ein Meldungsfenster. Sie können sehen, dass die ausgewählten Dateien als Anhänge im Feld Angehängt angezeigt werden.


2.1.2 Senden Sie das aktuelle Arbeitsblatt als Anhang per E-Mail

Wenn Sie das aktuelle Arbeitsblatt als Anhang aus Excel per E-Mail versenden möchten, können Sie das VBA-Skript in diesem Abschnitt anwenden.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster einfügen > Modul. Fügen Sie dann den folgenden VBA-Code in die Modul (Code) Fenster.

VBA-Code: Senden Sie das aktuelle Arbeitsblatt als Anhang per E-Mail

Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.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 = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

Anmerkungen:

1) In der Zeile .Zu = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "kte features" und .Body = "Bitte prüfen und lesen Sie dieses Dokument.";
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Addresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

3. Drücken Sie die Taste F5 drücken, um den Code auszuführen, dann wird das aktuelle Arbeitsblatt als Excel-Arbeitsmappe gespeichert und automatisch als Anhang in ein Nachrichtenfenster eingefügt. Siehe Screenshot:

Hinweis: Die angehängte Arbeitsmappe, die nur das aktuelle Arbeitsblatt enthält, hat denselben Namen wie die ursprüngliche Arbeitsmappe. Und die Zeit, zu der Sie den Code ausführen, wird auch zum Namen der Arbeitsmappe hinzugefügt.


2.1.3 Senden Sie die aktuelle Arbeitsmappe als Anhang per E-Mail

Nachdem Sie den VBA-Code gelernt haben, um das aktuelle Arbeitsblatt als Anhang von Excel per E-Mail zu versenden, stellen wir hier ein weiteres VBA-Skript bereit, mit dem Sie die gesamte Arbeitsmappe als Anhang per E-Mail versenden können. Bitte gehen Sie wie folgt vor.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden VBA-Code in das Fenster Modul (Code) ein.

VBA-Code: Senden Sie die aktuelle Arbeitsmappe als Anhang aus Excel per E-Mail

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

Anmerkungen:

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "kte features" und .Body = "Bitte prüfen und lesen Sie dieses Dokument.";
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Addresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

3. Drücken Sie die Taste F5 drücken, um den Code auszuführen, dann wird die aktuelle Arbeitsmappe automatisch als Anhang in ein Nachrichtenfenster eingefügt. Siehe Screenshot:


2.1.4 Senden Sie die gesamte Arbeitsmappe als PDF-Anhang per E-Mail

Die meisten Menschen neigen dazu, eine Excel-Arbeitsmappe als PDF-Datei zu speichern und sie dann als Anhang an andere zu senden. In diesem Abschnitt zeige ich Ihnen eine Möglichkeit, E-Mails direkt aus Excel mit der aktuell geöffneten Arbeitsmappe als PDF-Anhang zu versenden, ohne die Arbeitsmappe manuell als PDF-Datei speichern zu müssen.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden VBA-Code in das Fenster Modul (Code) ein.

VBA-Code: Senden Sie die gesamte Arbeitsmappe als PDF-Anhang per E-Mail

Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next

Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName

Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FilePath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
       .To = ""
       .CC = "Email Address"
       .BCC = "Email Address"
       .Subject = "test"
       .Body = "test"
       .Attachments.Add FilePath
       .Display   'or use .Send
   End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub

Anmerkungen:

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "test" und .Body = "test";
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.
4) Der Name der PDF-Datei entspricht dem Namen der ursprünglichen Arbeitsmappe. Und die Zeit, zu der Sie den Code ausführen, wird auch dem Namen der Arbeitsmappe hinzugefügt. Wenn Sie den Zeitstempel nicht zum Dateinamen hinzufügen müssen, entfernen Sie ihn bitte & Format (jetzt "tt-mmm-jj h-mm-ss") aus der folgenden Zeile.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf "

3. Drücken Sie die Taste F5 Taste, um den Code auszuführen. Dann wird die aktuelle Arbeitsmappe automatisch als PDF-Dateianhang in ein neues Nachrichtenfenster eingefügt. Siehe Screenshot:


2.1.5 Senden Sie das aktuelle Arbeitsblatt als PDF-Anhang per E-Mail

Beispielsweise gibt es eine Arbeitsmappe mit dem Namen „Monatsumsatz“, und Sie haben eine Umsatzberichtstabelle in einem Arbeitsblatt mit dem Namen „Umsatzbericht“ fertiggestellt und möchten dieses Arbeitsblatt als PDF-Datei an Ihre Kollegen senden. Der folgende VBA-Code kann Ihnen einen Gefallen tun.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster einfügen > Modul. Fügen Sie dann den folgenden VBA-Code in das Fenster Modul (Code) ein.

VBA-Code: Senden Sie das aktuelle Arbeitsblatt als PDF-Anhang per E-Mail

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

Anmerkungen:

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "test" und .Body = "test";
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.
4) Der Name der PDF-Datei lautet: der Name der ursprünglichen Arbeitsmappe_der Name des ursprünglichen Arbeitsblatts. In diesem Fall lautet der Name der PDF-Datei Monthly sales_sales report.

3. Drücken Sie die Taste F5 Taste, um den Code auszuführen. Anschließend wird das aktuelle Arbeitsblatt automatisch als PDF-Dateianhang in ein neues Nachrichtenfenster eingefügt. Siehe Screenshot:


2.2 Fügen Sie die Outlook-Signatur in die von Excel gesendeten E-Mails ein

Nehmen Sie den obigen Fall als Beispiel, Sie wenden den obigen VBA-Code an, um das aktuelle Arbeitsblatt als PDF-Dateianhang aus Excel zu senden, aber die Outlook-Signatur kann nicht zum Nachrichtenfenster hinzugefügt werden. Um die Outlook-Standardsignatur in der von Excel gesendeten E-Mail beizubehalten, hilft die folgende Methode.

Zwei VBA-Codes sind unten aufgeführt.

VBA-Code 1: Der Code hilft, die Outlook-Signatur beizubehalten.

VBA-Code 2: Der Code hilft, das aktuelle Arbeitsblatt als PDF-Anhang per E-Mail zu versenden.

VBA-Code 1: Outlook-Signatur beibehalten

.HTMLBody = "Email body" & "
" & .HTMLBody

VBA-Code 2: Senden Sie das aktuelle Arbeitsblatt als PDF-Anhang per E-Mail

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

1. Normalerweise müssen Sie drücken Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den obigen VBA-Code 2 in das Fenster Modul (Code) ein.

3. Um die Outlook-Standardsignatur in der von Excel gesendeten E-Mail beizubehalten, müssen Sie den VBA-Code 2 wie folgt ändern:

1) Ersetzen Sie die .Körper Linie mit VBA-Code 1;
2) Verschieben Sie die Linie .Anzeige unter der Linie Mit OutlookMail (oder mit xMailOut in anderen Codes). Siehe Screenshot:

Hier ist der vollständige Code nach der Änderung.

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .Display
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .HTMLBody = "Email body" & "
" & .HTMLBody .Attachments.Add FileName '.Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub

4. Drücken Sie die Taste F5 Taste, um den Code auszuführen. Dann erhalten Sie ein neues Nachrichtenfenster mit dem aktuellen Arbeitsblatt als PDF-Datei angehängt, während die Outlook-Standardsignatur automatisch am Ende des E-Mail-Textes eingefügt wird.


3. Automatisches Senden von E-Mails aus Excel, wenn eine Bedingung erfüllt ist (mit VBA-Skripten)

In den obigen Beispielen müssen Sie den Code manuell ausführen, um die E-Mail-Zustellung zu erreichen. Wenn Sie den Code automatisch auslösen möchten, wenn eine bestimmte Bedingung erfüllt ist, z. B. wenn eine Zelle einen bestimmten Wert erreicht, wenn sich der Wert einer Zelle ändert, wenn ein Datum erreicht ist usw., wird die E-Mail automatisch gesendet. Dieser Abschnitt listet die Bedingungen auf, nach denen Excel-Benutzer häufig in Google gesucht haben, damit Sie automatisch E-Mails aus Excel senden können, wenn eine bestimmte Bedingung erfüllt ist.

3.1 Senden Sie automatisch eine E-Mail, wenn eine Zelle einen bestimmten Wert erreicht

Angenommen, Sie haben eine Verkaufstabelle mit Zelle D6, die die Gesamtverkäufe enthält, wie im folgenden Screenshot gezeigt. Sie möchten automatisch eine E-Mail basierend auf der Verkaufssumme an Ihren Chef senden, z. B. automatisch eine E-Mail erstellen oder senden, wenn die Verkaufssumme 10000 übersteigt, aber wenn die Verkaufssumme gleich oder kleiner als 10000 ist, wird keine Aktion ausgeführt.

1. Klicken Sie im Arbeitsblatt mit der Verkaufstabelle mit der rechten Maustaste auf die Blattregisterkarte und klicken Sie auf Code anzeigen aus dem Kontextmenü.

2. In der Öffnung Microsoft Visual Basic für Applikationen Fügen Sie den folgenden VBA-Code in das Fenster ein Blatt (Code) Fenster.

VBA-Code: Senden Sie automatisch eine E-Mail, wenn eine Zelle in Excel einen bestimmten Wert erreicht

Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub

Notizen:

1) D6 ist die Zelle, auf deren Grundlage Sie eine E-Mail senden.
2) > 10000 ist die Bedingung, was bedeutet, dass eine E-Mail gesendet wird, wenn der Wert in D6 größer als 10000 ist.
3) Bereich ("D6") in der folgenden Zeile bedeutet, dass der E-Mail-Text auf den Wert in D6 verweist.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
5) Ändern Sie den E-Mail-Betreff in der Zeile .Subject = "test".
6) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

Wenn der Wert in Zelle D6 von nun an 10000 überschreitet, wird eine E-Mail erstellt, wie im folgenden Screenshot gezeigt.


3.2 Senden Sie automatisch eine E-Mail, wenn sich ein Zellenwert ändert

Angenommen, Sie erhalten eine Arbeitsmappe, die die monatlichen Verkäufe in verschiedenen Arbeitsblättern und die Verkaufssumme in einem Arbeitsblatt enthält, wie im folgenden Screenshot gezeigt. Sie müssen die Verkaufssumme überprüfen, und wenn die Verkaufssumme geändert wird, senden Sie die Arbeitsmappe an den Absender zurück und informieren Sie den Absender, dass die Zelle geändert wurde.

1. Klicken Sie im Arbeitsblatt mit der Verkaufstabelle mit der rechten Maustaste auf die Blattregisterkarte und klicken Sie auf Code anzeigen aus dem Kontextmenü.

2. In der Öffnung Microsoft Visual Basic für Applikationen Fügen Sie den folgenden VBA-Code in das Fenster Blatt (Code) ein.

VBA-Code: Senden Sie automatisch eine E-Mail, wenn sich ein bestimmter Zellenwert ändert

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If

ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address

Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."

With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Notizen: Im Code,

1) B14 im Code bedeutet, dass Sie eine E-Mail senden, wenn sich der Wert der Zelle B14 ändert.
2) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
3) Ändern Sie den E-Mail-Betreff in der Zeile .Subject = "Arbeitsblatt geändert".
4) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

Von nun an wird, wenn sich der Wert in Zelle B14 ändert, automatisch eine Outlook-Nachricht erstellt, wie im folgenden Screenshot gezeigt.


3.3 Automatisches Senden einer E-Mail, wenn eine Arbeitsmappe gespeichert wird

Wenn Sie eine Arbeitsmappe haben, die nach der Änderung mit anderen geteilt werden muss, müssen Sie normalerweise die Arbeitsmappe speichern, den E-Mail-Client starten, eine neue E-Mail mit dieser Arbeitsmappe als Anhang erstellen, die entsprechenden Felder verfassen und dann die E-Mail senden. Dieser Abschnitt zeigt Ihnen eine Methode zum automatischen Erstellen einer E-Mail, wenn Sie die Arbeitsmappe speichern. Bitte gehen Sie wie folgt vor.

1. Drücken Sie die Taste Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Doppelklicken Sie in diesem Fenster DiesesWorkbook der Projekt Bereich, und fügen Sie dann den folgenden VBA-Code in die DiesesArbeitsbuch (Code) Fenster.

VBA-Code: Automatisch eine E-Mail senden, wenn eine Arbeitsmappe gespeichert wird

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = ""
        .CC = "Email address"
        .BCC = "Email address"
        .Subject = "The workbook has been updated"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Notizen: Im Code,

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie E-Mail-Betreff und -Text separat in den Zeilen .Subject = "Die Arbeitsmappe wurde aktualisiert" und .Body = "Hi," & Chr(13) & Chr(13) & "Datei ist jetzt aktualisiert.".
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

3. Ab jetzt beim Speichern der Arbeitsmappe durch Drücken der Ctrl + S Tasten oder Klicken auf die Speichern klicken, wird automatisch eine Outlook-E-Mail erstellt. Sie können sehen, dass die aktuelle Arbeitsmappe als Anhang angehängt ist und die Felder mit den angegebenen Inhalten gefüllt sind. Siehe Screenshot:

Tips: Wenn Sie diese Arbeitsmappe häufig verwenden, empfehlen wir Ihnen, die Arbeitsmappe als Excel Makroaktivierte Arbeitsmappe um das VBA-Skript für die zukünftige Verwendung zu speichern. Die Schritte sind wie folgt.

1) Klicken Sie auf Reichen Sie das > Speichern unter, und wählen Sie dann einen Ordner aus, um die Datei zu speichern.
2) In der Speichern unter Benennen Sie die Datei nach Bedarf im Dialogfeld um Dateiname Textfeld auswählen Excel Makroaktivierte Arbeitsmappe der Speichern als Typ Dropdown-Liste, und klicken Sie schließlich auf die Speichern Taste. Siehe Screenshot:


3.4 Automatisches Versenden einer E-Mail zu einem bestimmten Zeitpunkt

Angenommen, Sie müssen eine E-Mail mit einer Arbeitsmappe für die Aufgabenzuweisung an jemanden senden jeden Freitagmorgen um 9 Uhr, und dies automatisch in Excel erledigen möchten, ohne den E-Mail-Client manuell bedienen zu müssen. Dieser Abschnitt zeigt Ihnen die Methode, um dies zu erreichen.

1. Drücken Sie die Taste Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden VBA-Code in das Modulfenster ein.

VBA-Code1: Senden Sie die aktuelle Arbeitsmappe als Anhang aus Excel per E-Mail

Sub Timer()
    If Weekday(Date) = vbFriday Then
        SendWorkBook
        Application.OnTime TimeValue("09:00:00"), "Timer"
    Else
        Application.OnTime TimeValue("09:00:00"), "Timer"
    End If
End Sub

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. Doppelklicken Sie in diesem Fenster DiesesWorkbook der Projekt Bereich, und fügen Sie dann den folgenden VBA-Code in die DiesesArbeitsbuch (Code) Fenster.

VBA-Code 2: Zu einer bestimmten Zeit automatisch eine E-Mail senden

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

Notizen:

1) Im VBA-Code 1, Freitag in der folgenden Zeile bedeutet, dass die E-Mail automatisch jeden Freitag gesendet wird;
Wenn Wochentag(Datum) = vbFreitag, dann
2) In VBA-Code 1 und VBA-Code 2 die Uhrzeit 09:00:00 bedeutet, dass die E-Mail an einem bestimmten Tag um 9:XNUMX Uhr gesendet wird.
Sie können den Tag und die Uhrzeit nach Bedarf ändern.
3) Wenn der Code ausgeführt wird, wird eine E-Mail erstellt. Wenn Sie das Nachrichtenfenster nicht öffnen möchten und es direkt senden müssen, entfernen Sie bitte die Zeile .Anzeige aus dem VBA-Code 1, und entfernen Sie die Apostroph vor der Zeile '.Senden.

4. Speichern Sie die Codes und speichern Sie dann die Arbeitsmappe wie folgt als Excel-Arbeitsmappe mit Makros.

4.1) Klicken Sie auf Reichen Sie das > Speichern unter, und wählen Sie dann einen Ordner aus, um die Datei zu speichern.
4.2) In der Speichern unter Benennen Sie die Datei nach Bedarf im Dialogfeld um Dateiname Textfeld auswählen Excel Makroaktivierte Arbeitsmappe der Speichern als Typ Dropdown-Liste, und klicken Sie schließlich auf die Speichern Taste. Siehe Screenshot:

5. Öffnen Sie Ihre gespeicherte Arbeitsmappe mit Makros, dann wird automatisch eine E-Mail erstellt oder gesendet, wenn der Tag und die Uhrzeit eintreffen.


4. Zusätzliche Themen

In diesem Abschnitt werden andere Themen gesammelt, auf die Sie möglicherweise stoßen, wenn Sie E-Mails aus Excel senden.

4.1 Eine Reihe von Zellen aus Excel per E-Mail versenden (mit VBA-Skript)

Angenommen, es gibt eine monatliche Verkaufstabelle in einem Excel-Arbeitsblatt, wie im Screenshot unten gezeigt, und Sie müssen diese monatliche Verkaufstabelle als Inhalt einer E-Mail oder direkt als Anhang an andere senden. Hier stellen wir Ihnen zwei Methoden zur Verfügung, um dies zu erreichen.

4.1.1 Einen Bereich als Teil des Hauptinhalts von Excel per E-Mail versenden

Sie können den folgenden VBA-Code ausführen, um eine Reihe von Zellen als Teil des E-Mail-Textinhalts von Excel zu senden

1. Drücken Sie die Taste Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Tools > Bibliographie. Und dann überprüfen Sie die Microsoft Outlook 16.0-Objektbibliothek Box und klicken Sie auf OK der Referenzen - VBAProject Dialogbox.

3 Klicken Insert > Modul, fügen Sie dann den folgenden VBA-Code in die Modul (Code) Fenster.

VBA-Code: Senden Sie eine Reihe von Zellen als Teil des E-Mail-Textinhalts aus Excel

Sub SendARangeofCells()
'Updated by Extendoffice 20220809
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "test"
        .To = ""
        .CC = "Email address"
        .BCC = "Email address"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

Notizen: Im Code,

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

4. Drücken Sie die Taste F5 Taste, um den Code auszuführen. In der aufgetauchten Kutools for Excel Wählen Sie im Dialogfeld den Zellenbereich aus, den Sie als Teil des Inhalts eines E-Mail-Texts senden möchten, und klicken Sie dann auf OK. Siehe Screenshot:

Dann wird automatisch eine Outlook-E-Mail erstellt. Sie können sehen, dass der Bereich, den Sie im Arbeitsblatt ausgewählt haben, in den E-Mail-Text eingefügt wird. Siehe Screenshot:


4.1.2 E-Mail einen Bereich als Anhang aus Excel

Wenn Sie eine Reihe von Zellen in einem Arbeitsblatt als Anlage aus Excel per E-Mail versenden müssen. Sie können den folgenden VBA-Code ausprobieren.

1. Drücken Sie die Taste Andere + F11 Schlüssel.

2. In der Öffnung Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden VBA-Code in die Modul (Code) Fenster.

VBA-Code: Senden Sie einen Bereich als Anhang aus Excel per E-Mail

Sub SendRange()
'Update 20220809
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 = "Email address"
    .BCC = "Email address"
    .Subject = "Monthly sales for 2021"
    .Body = "Hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Display
    '.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

Notizen:

1) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
2) Ändern Sie den E-Mail-Betreff und den E-Mail-Text separat in der Zeile .Subject = "Monatlicher Umsatz für 2021" und .Body = "Hallo, bitte prüfen und lesen Sie dieses Dokument.";
3) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Addresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

3. Drücken Sie die Taste F5 Taste, um den Code auszuführen. In der aufgetauchten Kutools for Excel Wählen Sie im Dialogfeld den Zellenbereich aus, den Sie als Anhang in einer E-Mail senden möchten, und klicken Sie dann auf OK. Siehe Screenshot:

Dann wird automatisch eine Outlook-E-Mail erstellt. Und der Zellbereich, den Sie im Arbeitsblatt ausgewählt haben, wird als Excel-Arbeitsmappe gespeichert und an das Nachrichtenfenster angehängt. Siehe Screenshot:


4.2 E-Mails senden, wenn in Excel auf eine Schaltfläche geklickt wird

Wenn Sie beispielsweise auf eine Befehlsschaltfläche klicken müssen, um ein Makro zum Senden einer E-Mail aus Excel auszulösen, senden Sie die aktuelle Arbeitsmappe als Anlage an andere, indem Sie auf eine Befehlsschaltfläche im Arbeitsblatt klicken. Sie können die folgenden Schritte ausführen, um dies zu erledigen.

1 Klicken Entwickler:in / Unternehmen > Insert > Befehlsschaltfläche (ActiveX Control). Zeichnen Sie dann eine Befehlsschaltfläche in das Arbeitsblatt.

Tips: Wenn Sie bereits über eine Befehlsschaltfläche verfügen, überspringen Sie diesen Schritt.

2. Drücken Sie die Taste Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster. Klicken Sie im Fenster auf Insert > Modus, und fügen Sie dann den VBA-Code (der Code, der verwendet wird, um die aktuelle Arbeitsmappe per E-Mail als Anhang von Excel zu senden) in das Fenster Modul (Code) ein.

Klicken Sie hier, um den Code zu erhalten.

Note: Hier steht der Name des Makros, das Sie in Schritt 2 erstellt haben Arbeitsmappe senden.

3. Drücken Sie die Taste Andere + Q Tasten zum Schließen der Microsoft Visual Basic für Applikationen Fenster.

4. Jetzt müssen Sie das Makro der Befehlsschaltfläche zuweisen. Klicken Sie mit der rechten Maustaste auf die Befehlsschaltfläche, wählen Sie aus Code anzeigen aus dem Rechtsklick-Menü.

5. Dann die Microsoft Visual Basic für Applikationen Fenster erscheint, können Sie sehen, dass die folgenden zwei Zeilen aufgelistet sind Blatt (Code) Fenster.

Private Sub CommandButton1_Click()
End Sub

6. Geben Sie den Namen des vorhandenen Makros innerhalb der Unterprozedur für die Befehlsschaltfläche ein.

7. Drücken Sie die Taste Andere + Q Tasten zum Schließen der Visual Basic-EditorUnd klicken Sie auf Entwickler:in / Unternehmen > Entwurfsmodus um den Designmodus auszuschalten.

Jetzt können Sie auf die Befehlsschaltfläche klicken, um eine E-Mail mit der aktuellen Arbeitsmappe als Anhang in der E-Mail zu senden.


4.3 Senden Sie E-Mails von einem bestimmten E-Mail-Konto

Wenn Sie eine E-Mail aus Excel mit VBA-Code starten, ist das E-Mail-Konto des Absenders normalerweise das Standardkonto in Outlook. Angenommen, Sie haben mehrere E-Mail-Konten in Ihrem Outlook konfiguriert und möchten ein bestimmtes Konto verwenden, um die E-Mails aus Excel zu senden, anstatt das Standardkonto zu verwenden. Der folgende VBA-Code kann helfen.

In diesem Fall sind die folgenden Codes erforderlich.

VBA-Code 1:

Dim OutlookMail As Outlook.MailItem

VBA-Code 2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

Wie verwende ich den obigen VBA-Code?

1) In Ihrem eigenen Code müssen Sie die Zeile wie „Dim OutlookMail als Objekt” mit VBA-Code 1;
2) Fügen Sie den VBA-Code 2 unter der Zeile „On Error Resume Next“ in Ihrem Code. Geben Sie dann die E-Mail-Adresse an, die Sie zum Senden der E-Mail in VBA-Code 2 verwenden werden.

In diesem Beispiel geben wir ein bestimmtes E-Mail-Konto an, um die aktuelle Arbeitsmappe als Anhang von Excel zu senden. Bitte gehen Sie wie folgt vor.

1. Drücken Sie die Taste Andere + F11 Schlüssel. Im Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Tools > Bibliographie. Und dann überprüfen Sie die Microsoft Outlook 16.0-Objektbibliothek Box und klicken Sie auf OK der Referenzen - VBAProject Dialogbox.

2 Klicken Insert > Modul. Fügen Sie dann den folgenden VBA-Code in die Modul (Code) Fenster.

VBA-Code: Senden Sie die aktuelle Arbeitsmappe als E-Mail-Anhang von Excel über ein angegebenes Outlook-Konto

Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. Drücken Sie die Taste F5 Taste, um den Code auszuführen. Dann erscheint eine Outlook-E-Mail-Nachricht, Sie können sehen, dass die Aus Das Feld wird mit dem E-Mail-Konto ausgefüllt, das Sie im Code angegeben haben.


4.4 Senden Sie eine E-Mail, wenn ein Datum erreicht ist

Wenn Sie beispielsweise eine E-Mail basierend auf einem bestimmten Fälligkeitsdatum senden müssen, wie im folgenden Screenshot gezeigt, gibt es eine Projekttabelle, wenn das Fälligkeitsdatum im Bereich E2:E7 gleich oder weniger als 7 Tage ab heute ist (unter der Annahme, dass das aktuelle Datum der 2022 ist), wird automatisch eine E-Mail an die entsprechenden Projektleiter gesendet und sie darüber informiert, dass das Projekt bald ausläuft.

1. Klicken Sie im Arbeitsblatt mit der Projekttabelle mit der rechten Maustaste auf die Blattregisterkarte und klicken Sie auf Code anzeigen aus dem Kontextmenü.

2. In der Öffnung Microsoft Visual Basic für Applikationen Fügen Sie den folgenden VBA-Code in das Fenster ein Blatt (Code) Fenster.

VBA-Code: Senden Sie automatisch eine E-Mail, wenn ein Fälligkeitsdatum erreicht ist

Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "

" xMailBody = "" xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf xMailBody = xMailBody & "" Set xMailItem = xOutApp.CreateItem(0) With xMailItem .Subject = xMailSubject .To = xRgSendVal .CC = "Email address" .BCC = "Email address" .HTMLBody = xMailBody .Display '.Send End With Set xMailItem = Nothing End If End If Next Set xOutApp = Nothing End Sub

Notizen: Im Code,

1) In den folgenden Zeilen E2: E7 enthält die Fälligkeitsdaten, auf deren Grundlage Sie E-Mails senden. C2: C7 enthält die E-Mail-Adressen, an die Sie E-Mails senden werden. Und D2: D7 enthält die Bemerkungen, die Sie dem E-Mail-Text hinzufügen, um die Empfänger darüber zu informieren, dass das Projekt bald abläuft. Sie können die Bereiche nach Bedarf ändern.
Setze xRgDate = Range("E2:E7")
Setze xRgSend = Range("C2:C7")
Setze xRgText = Range("D2:D7")
2) Die folgende Zeile bedeutet, dass das Fälligkeitsdatum größer als 1 Tag und gleich oder kleiner als 7 Tage ab heute sein muss. Sie können es nach Bedarf ändern.
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
3) In der Schlange .An = , bitte ersetzen mit der E-Mail-Adresse des echten Empfängers. Wenn Sie mehr als eine E-Mail-Adresse benötigen, trennen Sie diese bitte durch Semikolons.
4) Ändern Sie den E-Mail-Betreff in der Zeile .Subject = "Arbeitsblatt geändert".
5) In den folgenden zwei Zeilen:
.CC = "E-Mail-Adresse"
.BCC = "E-Mail-Adresse"
Wenn Sie die cc- und bcc-Empfänger hinzufügen möchten, ersetzen Sie den Text „E-Mail-Adresse“ in die Zeilen mit den E-Mail-Adressen, die Sie benötigen.
Wenn Sie die cc- und bcc-Empfänger nicht benötigen, fügen Sie einfach ein Apostroph hinzu ' vor jeder Zeile.

3. Drücken Sie die Taste F5 Taste, um den Code auszuführen. Wenn das Ablaufdatum dann den Bedingungen entspricht, wird die entsprechende E-Mail erstellt. In diesem Fall werden zwei E-Mails erstellt, wie im folgenden Screenshot gezeigt.


5. Ein praktisches Tool zum einfachen Versenden von E-Mails aus Excel

Wenn Sie ein VBA-Neuling sind, sind die oben genannten Methoden möglicherweise nicht einfach für Sie zu handhaben. Hier empfehlen wir Kutools for Excel E-Mails senden Mit dieser Funktion können Sie ganz einfach E-Mails aus Excel mit nur wenigen Klicks versenden. Bitte gehen Sie wie folgt vor.

Vor der Bewerbung Kutools for Excel, Bitte Laden Sie es zuerst herunter und installieren Sie es.

5.1 Erstellen Sie ganz einfach eine Mailingliste, die die von Ihnen benötigten E-Mail-Felder enthält

Bevor Sie die Funktion „E-Mails senden“ anwenden, müssen Sie eine Mailingliste erstellen, die die benötigten E-Mail-Felder enthält. Hier kann die Funktion Mailingliste erstellen helfen.

1 Klicken Kutoolen Plus > Mailingliste erstellen.

2. In der Öffnung Mailingliste erstellen Fenster müssen Sie wie folgt konfigurieren.

2.1) In der Spalten für die Mailingliste Abschnitt, überprüfen Sie die Felder, die Sie in Ihrer E-Mail benötigen;
2.2) In der Dateien anhängen Abschnitt, überprüfen Sie einen oder mehrere Anhänge, die Sie benötigen;
2.3) Geben Sie einen Ort an, an dem die Mailingliste platziert werden soll;
2.4) Klicken Sie auf Erstellen Taste. Siehe Screenshot:

Dann wird eine Beispiel-Mailinglistentabelle erstellt, wie im Screenshot unten gezeigt.

3. Jetzt müssen Sie die Originaldaten im Beispiel durch Ihre eigenen Felddaten ersetzen.

Jetzt haben Sie eine Mailinglistentabelle erstellt. Bitte wenden Sie sich an die E-Mails senden Funktion zum Senden von E-Mails aus Excel basierend auf den von Ihnen erstellten Feldern.

  Wenn Sie eine kostenlose Testversion (30 Tage) dieses Dienstprogramms wünschen, Bitte klicken Sie, um es herunterzuladenund wenden Sie dann die Operation gemäß den obigen Schritten an.


5.2 Einfaches Senden von E-Mails mit den Feldern, die Sie in der Mailingliste erstellt haben

Nach dem Erstellen der Mailingliste (klick um zu wissen wie), das die Felder enthält, die Sie möglicherweise in Ihren E-Mails benötigen, können Sie jetzt E-Mails aus Excel mit diesen Feldern senden.

1. Wählen Sie die gesamte Mailingliste aus, klicken Sie auf Kutoolen Plus > E-Mails senden.

2. In dem E-Mails senden Dialogfeld, nehmen Sie bitte die folgende Konfiguration vor.

2.1) Felder werden automatisch durch die Felder, die Sie in der Mailingliste angegeben haben, in die Dialogbox jedes Feldes gefüllt;
Tips: Wenn Sie ein bestimmtes Feld zu diesem Zeitpunkt nicht benötigen, wählen Sie eine leere Option in der Dropdown-Liste aus.
2.2) Platzhalter einfügen (optional): Wenn Sie variable Informationen in einen E-Mail-Text einfügen müssen.
Wenn Sie beispielsweise eine E-Mail an mehrere Empfänger mit personalisierten Namen für jeden senden müssen, müssen Sie den Cursor in den E-Mail-Text platzieren, wo Sie den Platzhalter einfügen müssen, wählen Sie das Feld „E: Vorname“ (oder ein anderes Namensfeld in Ihrer E-Mail-Liste) und klicken Sie dann auf Einfügen Platzhalter Taste;
Wenn die Empfänger die E-Mail erhalten, bleibt der E-Mail-Text gleich, aber die Namen sind für jeden eindeutig.
2.3) Verfassen Sie den E-Mail-Text nach Bedarf;
2.4) Stellen Sie sicher, dass die Senden Sie E-Mails über Outlook Kästchen ist angekreuzt;
2.5) Klicken Sie auf Absenden Taste. Siehe Screenshot:

3. Dann a Kutools for Excel Wenn ein Dialogfeld angezeigt wird, das Ihnen mitteilt, wie viele E-Mails gesendet werden, klicken Sie auf OK Schaltfläche, um dieses Dialogfeld zu schließen.

Tips: Du kannst zu dem ... gehen Gesendete Objekte Ordner in Ihrem Outlook, um die gesendeten E-Mails zu überprüfen.


5.3 Einfaches Versenden von E-Mails mit HTML-Text (einschließlich Hyperlink, Bild usw.)

Mit dieser Funktion zum Senden von E-Mails können Sie eine HTML-E-Mail erstellen, die Hyperlinks, Bilder, verschiedene Schriftgrößen und Schriftfarben usw. enthält.

Nach der Erstellen einer Mailingliste, die die von Ihnen benötigten E-Mail-Felder enthält,

Wenn Sie Konfigurieren Sie das Dialogfeld „E-Mails senden“., können Sie den Textinhalt mit den Optionen in der Symbolleiste reichhaltig gestalten.

Siehe den Screenshot unten:


5.4 Einfaches Einfügen der Outlook-Standardsignatur beim Senden von E-Mails

In der obigen Methode haben wir einen VBA-Code demonstriert, der Ihnen hilft, E-Mails mit der Outlook-Standardsignatur zu senden. Hier mit der Funktion „E-Mails senden“ müssen Sie nur eine Option aktivieren, dann wird die Outlook-Standardsignatur in E-Mails eingefügt, die Sie aus Excel gesendet haben.

Nach der Erstellen einer Mailingliste, die die von Ihnen benötigten E-Mail-Felder enthält,

Wann Konfigurieren Sie das Dialogfeld „E-Mails senden“., du musst klicken Optionen > Verwenden Sie die Signatureinstellungen von Outlook.

Note: Stellen Sie sicher, dass vor der Option Signatureinstellungen von Outlook verwenden ein Häkchen angezeigt wird.

Wenn Empfänger die E-Mail erhalten, können sie die Outlook-Standardsignatur am Ende des E-Mail-Texts sehen.


5.5 Einfaches Senden von E-Mails von einem bestimmten E-Mail-Konto

Um ein bestimmtes E-Mail-Konto zum Senden der E-Mails aus Excel zu verwenden, anstatt das Standardkonto zu verwenden, kann die Funktion „E-Mails senden“ ebenfalls dazu beitragen, dies einfach zu erledigen.

Nach der Erstellen einer Mailingliste, die die von Ihnen benötigten E-Mail-Felder enthält,

Wann Konfigurieren Sie das Dialogfeld „E-Mails senden“., du musst klicken Optionen > Gesendet von, und klicken Sie dann auf das E-Mail-Konto, von dem Sie E-Mails senden möchten.

Note: Nach Auswahl des E-Mail-Kontos wird davor ein Häkchen angezeigt.

Klicken Sie auf Kostenlos erhalten und dann auf Installieren. hier um mehr über diese Funktion zum Senden von E-Mails zu erfahren.

  Wenn Sie eine kostenlose Testversion (30 Tage) dieses Dienstprogramms wünschen, Bitte klicken Sie, um es herunterzuladenund wenden Sie dann die Operation gemäß den obigen Schritten an.

Zusammenfassend lässt sich sagen, dass das Versenden von E-Mails aus Excel in unserer täglichen Arbeit sehr nützlich ist. Dieser Artikel behandelt umfassendere Themen zum E-Mail-Versand aus Excel. Wenn es andere Themen oder einfachere Lösungen gibt, hinterlassen Sie bitte einen Kommentar, um mich darüber zu informieren.

Beste Office-Produktivitätstools

🤖 Kutools KI-Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung   |  Code generieren  |  Erstellen Sie benutzerdefinierte Formeln  |  Analysieren Sie Daten und erstellen Sie Diagramme  |  Rufen Sie Kutools-Funktionen auf...
Beliebte Funktionen: Suchen, markieren oder identifizieren Sie Duplikate   |  Leere Zeilen löschen   |  Kombinieren Sie Spalten oder Zellen, ohne Daten zu verlieren   |   Runde ohne Formel ...
Super-Lookup: VLookup mit mehreren Kriterien    VLookup mit mehreren Werten  |   VLookup über mehrere Blätter hinweg   |   Unscharfe Suche ....
Erweiterte Dropdown-Liste: Erstellen Sie schnell eine Dropdown-Liste   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Fügen Sie eine bestimmte Anzahl von Spalten hinzu  |  Spalten verschieben  |  Schalten Sie den Sichtbarkeitsstatus ausgeblendeter Spalten um  |  Vergleichen Sie Bereiche und Spalten ...
Ausgewählte Funktionen: Rasterfokus   |  Designansicht   |   Große Formelleiste    Arbeitsmappen- und Blattmanager   |  Ressourcen (Autotext)   |  Datumsauswahl   |  Arbeitsblätter kombinieren   |  Zellen verschlüsseln/entschlüsseln    Senden Sie E-Mails nach Liste   |  Superfilter   |   Spezialfilter (Filter fett/kursiv/durchgestrichen...) ...
Top 15 Toolsets12 Text Tools (Text hinzufügen, Zeichen entfernen, ...)   |   50+ Chart Typen (Gantt-Diagramm, ...)   |   40+ Praktisch Formeln (Berechnen Sie das Alter basierend auf dem Geburtstag, ...)   |   19 Einfügen Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Umwandlung (Conversion) Tools (Zahlen zu Wörtern, Currency Conversion, ...)   |   7 Zusammenführen & Teilen Tools (Erweiterte Zeilen kombinieren, Zellen teilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...

Beschreibung


Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations