Computer >> Máy Tính >  >> Phần mềm >> Office

Cách tự động gửi email từ Excel dựa trên ngày

Bài viết sẽ chỉ cho bạn những cách tốt nhất có thể để tự động gửi Email từ Excel dựa trên ngày . Thông thường, thật dễ dàng để gửi một Email từ Outlook hoặc Gmail , nhưng khi bạn muốn gửi Email vào một thời điểm hoặc ngày nhất định , bạn có thể sử dụng Microsoft Excel một cách hiệu quả.

Trong tập dữ liệu, chúng tôi có một số địa chỉ email (tất cả chúng đều là địa chỉ giả ngoại trừ admin@wsxdn.com , là của tôi. Tôi đang sử dụng địa chỉ của mình để có thể chỉ cho bạn cách hoạt động của các phương pháp.

Cách tự động gửi email từ Excel dựa trên ngày

3 cách tự động gửi email từ Excel dựa trên ngày

1. Sử dụng Excel VBA để tự động gửi email dựa trên ngày cố định

Chúng tôi có thể gửi Email tự động bằng cách sử dụng Microsoft Visual Basic for Application ( VBA ) dựa trên ngày tháng . Bạn có thể lập danh sách ngày tháng khi bạn muốn gửi Email cho người nhận tương ứng của họ. Hãy xem qua quy trình bên dưới để hiểu rõ hơn. Trong phần này, chúng tôi sẽ chỉ làm việc với ngày tháng .

Các bước:

  • Trước tiên, hãy chuyển đến Nhà phát triển >> Visual Basic

Cách tự động gửi email từ Excel dựa trên ngày

  • Sau đó đến cửa sổ VBA sẽ mở. Chọn Chèn >> Mô-đun
  • Cách tự động gửi email từ Excel dựa trên ngày Nhập mã sau vào Mô-đun VBA .
Sub SendEmail01()
Dim Range_Select As Range
Dim Date_Range As Range
Dim Cell_Address As String
Dim Subject, Email_From, Email_To, Cc, Bcc, Email_Text As String
Dim Email_Obj, Single_Mail As Object
On Error Resume Next
Cell_Address = ActiveWindow.RangeSelection.Address
Set Range_Select = Application.InputBox("Select a range:", _
"Message Box", Cell_Address, , , , , 8)
If Range_Select Is Nothing Then Exit Sub
For Each Date_Range In Range_Select
If Date_Range.Value = Date Then
Subject = Application.InputBox("Subject: ", "Message", , , , , , 2)
Email_From = Application.InputBox("Send from: ", "Message Box", , , , , , 2)
Email_To = Application.InputBox("Send to: ", "Message Box", , , , , , 2)
If Email_To = "" Then Exit Sub
Cc = Application.InputBox("CC: ", "Message Box", , , , , , 2)
Bcc = Application.InputBox("BCC: ", "Message Box", , , , , , 2)
Email_Text = Application.InputBox("Message Body: ", "Message Box", , , , , , 2)
Set Email_Obj = CreateObject("Outlook.Application")
Set Single_Mail = Email_Obj.CreateItem(0)
With Single_Mail
.Subject = Subject
.To = Email_To
.Cc = Cc
.Bcc = Bcc
.Body = Email_Text
.send
End With
End If
Next
End Sub

Cách tự động gửi email từ Excel dựa trên ngày

Giải thích mã

  • Đầu tiên, chúng tôi đã khai báo một số biến cần thiết: Range_Select Date_Range dưới dạng Phạm vi ; Cell_Address , Chủ đề , Email_From , Email_To , Cc , Bcc , Email_Text dưới dạng Chuỗi ; Email_Obj Single_Mail dưới dạng Đối tượng .
  • Sau đó, chúng tôi đặt Range_Select vào Hộp đầu vào nơi nó có thể chọn một phạm vi trong số các ô qua Hộp thông báo .
  • Sau đó, chúng tôi sử dụng Giá trị trong Câu lệnh VBA IF và cũng đặt Chủ đề , Email_From Email_To vào Hộp đầu vào .
  • Nếu không có Địa chỉ email ( Email_To =“” ), Thủ tục phụ sẽ thoát ra . Nếu không, chúng tôi đặt thêm một số biến trong Câu lệnh IF mới . Cc Bcc tham khảo Bản sao carbon Bản sao mù carbon của Email mà chúng tôi muốn gửi đến những người khác nhau.
  • Sau đó, chúng tôi tạo một Đối tượng Ứng dụng Outlook mà chúng tôi xác định bởi Email_Obj . Ngoài ra, chúng tôi sử dụng Single_Mail để tạo một mặt hàng cho Email_Obj .
  • Sau đó, chúng tôi xác định Chủ đề , Email_To , Cc , Bcc , Email_Text là những phần cần thiết của Email bởi một Với Tuyên bố . Chúng tôi cũng đặt .Gửi trong câu lệnh này.

  • Bây giờ, quay lại trang tính của bạn và chạy Macro có tên SendEmail01 vì nó là tên của Macro hiện tại của bạn .

Cách tự động gửi email từ Excel dựa trên ngày

  • Sau khi thực hiện thao tác này, bạn sẽ thấy một Hộp Thông báo bật lên yêu cầu bạn chọn phạm vi ngày . Chọn phạm vi và nhấp vào OK .

Cách tự động gửi email từ Excel dựa trên ngày

  • Sau đó, một Hộp thư khác sẽ bật lên. Nhập chủ đề và nhấp vào OK .

Cách tự động gửi email từ Excel dựa trên ngày

  • Bạn sẽ thấy một chuỗi Hộp Thư yêu cầu bạn cung cấp thông tin cần thiết để gửi Email . Chỉ cần làm theo những hình ảnh bên dưới.
  • Đặt Địa chỉ email của bạn .

Cách tự động gửi email từ Excel dựa trên ngày

  • Nhập Địa chỉ email nơi bạn sẽ gửi Email của mình .

Cách tự động gửi email từ Excel dựa trên ngày

  • Chèn CC địa chỉ của người nhận .

Cách tự động gửi email từ Excel dựa trên ngày

  • Đặt BCC người nhận trong Hộp thư nếu bạn muốn. Tôi không chọn bất kỳ.

Cách tự động gửi email từ Excel dựa trên ngày

  • Nhập tin nhắn của bạn.

Cách tự động gửi email từ Excel dựa trên ngày

  • Sau Hộp Thông báo cuối cùng , bạn có thể thấy một hộp cảnh báo từ Microsoft Outlook . Nhấp vào Cho phép .

Cách tự động gửi email từ Excel dựa trên ngày

Thao tác này sẽ gửi Email tới các địa chỉ mà bạn đặt trong hộp thư tương ứng .
This is the main Email .

Cách tự động gửi email từ Excel dựa trên ngày

And below here is the Carbon Copy of the Email .

Cách tự động gửi email từ Excel dựa trên ngày

Thus you can automatically send an Email from Excel based on the date . 

Read More:Excel Macro to Send Email Automatically (3 Suitable Examples)

2. Sending Email Automatically from Excel Based on Following Dates

In this section, we will send Emails based on the following or future dates . Suppose you want to send someone an Email prior to 3 days or 7 days. Let’s go through the following discussion on this matter.

Các bước:

  • First, go to Section 1 to see how to open a VBA Module .
  • Then type the following code in the VBA Module .
Public Sub SendEmail02()
Dim Date_Range As Range
Dim Mail_Recipient As Range
Dim Email_Text As Range
Dim Outlook_App_Create As Object
Dim Mail_Item As Object
Dim Last_Row As Long
Dim VB_CR_LF, Email_Body, Date_Range_Value, Send_Value, Subject As String
Dim i As Long
On Error Resume Next
Set Date_Range = Application.InputBox("Please choose the date range:", "Message Box", , , , , , 8)
If Date_Range Is Nothing Then Exit Sub
Set Mail_Recipient = Application.InputBox("Please select the Email addresses:", "Message Box", , , , , , 8)
If Mail_Recipient Is Nothing Then Exit Sub
Set Email_Text = Application.InputBox("Select the Email Text:", "Message Box", , , , , , 8)
If Email_Text Is Nothing Then Exit Sub
Last_Row = Date_Range.Rows.Count
Set Date_Range = Date_Range(1)
Set Mail_Recipient = Mail_Recipient(1)
Set Email_Text = Email_Text(1)
Set Outlook_App_Create = CreateObject("Outlook.Application")
For i = 1 To Last_Row
Date_Range_Value = ""
Date_Range_Value = Date_Range.Offset(i - 1).Value
If Date_Range_Value <> "" Then
If CDate(Date_Range_Value) - Date <= 7 And CDate(Date_Range_Value) - Date > 0 Then
Send_Value = Mail_Recipient.Offset(i - 1).Value
Subject = Email_Text.Offset(i - 1).Value & " on " & Date_Range_Value
VB_CR_LF = "<br><br>"
Email_Body = "<HTML><BODY>"
Email_Body = Email_Body & "Dear " & Send_Value & VB_CR_LF
Email_Body = Email_Body & "Text : " & Email_Text.Offset(i - 1).Value & VB_CR_LF
Email_Body = Email_Body & "</BODY></HTML>"
Set Mail_Item = Outlook_App_Create.CreateItem(0)
With Mail_Item
.Subject = Subject
.To = Send_Value
.HTMLBody = Email_Body
.Display
End With
Set Mail_Item = Nothing
End If
End If
Next
Set Outlook_App_Create = Nothing
End Sub

Cách tự động gửi email từ Excel dựa trên ngày

Code Explanation

  • First, we declared some necessary variables:Date_Range , Mail_Recipient and Email_Text dưới dạng Phạm vi ; Outlook_App_Create and Mail_Item as Object; Last_Row and i as Long ; VB_CR_LF (Visual Basic Carriage Return Line Feed ), Email_Body , Date_Range_Value , Send_Value , Subject as String .
  • Then we set Date_Range to an InputBox where it can select a range trong tổng số ngày tháng via a Message Box . An If Statement is used to terminate Sub Procedure if the Date_Range is Nothing .
  • We also set Mail_Recipient and Email_Text to InputBox
  • After that, we create an Outlook Application Object which we define by Outlook_App_Create .
  • A date interval is introduced. In this code, the duration is 7 . Suppose you want someone to be reminded about an event or greetings 7 days after today which is 19th May . If the Emails you want to send are within the dates between 20th to 26th May , the recipient will receive the Email . Otherwise, it will not reach.
  • Then we put some commands to format the Email_Body . And also define the necessary parts of the Email by the With Statement .
  • We used the .Display command here so that Outlook will open these Email drafts and we can check if any other messages need to be sent. You can use the .Send command if you don’t want to see the message drafts. But do not use these two commands simultaneously .

  • Now, go back to your sheet and run the Macro named SendEmail02 as it is the name of your current Macro .

Cách tự động gửi email từ Excel dựa trên ngày

  • After executing this operation, you will see a message box pop up telling you to select the date range . Select the range và nhấp vào OK .

Cách tự động gửi email từ Excel dựa trên ngày

  • Then, another message box will pop up and it will tell you to select the Email address range . Select the range và nhấp vào OK .

Cách tự động gửi email từ Excel dựa trên ngày

  • After that, select the range of text messages in the message box và nhấp vào OK .

Cách tự động gửi email từ Excel dựa trên ngày

  • You will see the Email drafts for 21st May to 24th May . Here, the ID admin@wsxdn.com is an actual Email ID , so we sent the corresponding Email to this address to show you the example. You can put a CC recipient if you want.

Cách tự động gửi email từ Excel dựa trên ngày

  • Let’s check my Emails . This can be sent to Spam box too. So check everywhere.

Cách tự động gửi email từ Excel dựa trên ngày

Thus you can automatically send email based on following dates

Đọc thêm: Send Reminder Email Automatically from an Excel Worksheet Using VBA

Bài đọc tương tự

  • How to See Who Is in a Shared Excel File (With Quick Steps)
  • Enable Share Workbook in Excel
  • How to Share Excel File for Multiple Users
  • Send Bulk Email from Outlook Using Excel (3 Ways)
  • How to Apply Macro to Send Email from Excel with Attachment

3. Automatically Sending Email to a Single Address Based on a Date

We can also send an Email automatically single address based on a date . You can make a list of dates when you want to send the Emails to their corresponding recipients. Let’s go through the process below for a better understanding. In this section, we will only work with the dates .

Các bước:

  • First, go to Section 1 to see how to open a VBA Module .
  • Nhập mã sau vào Mô-đun VBA .
Option Explicit
Sub SendEmail03()
Dim Date_Range As Range
Dim rng As Range
Set Date_Range = Range("B5:B10")
For Each rng In Date_Range
If rng.Value = Date Then
Dim Subject, Send_From, Send_To, _
Cc, Bcc, Body As String
Dim Email_Obj, Single_Mail As Variant
Subject = "Hello there!"
Send_From = "admin@wsxdn.com"
Send_To = "admin@wsxdn.com"
Cc = "admin@wsxdn.com"
Bcc = ""
Body = "Hope you are enjoying the article"
On Error GoTo debugs
Set Email_Obj = CreateObject("Outlook.Application")
Set Single_Mail = Email_Obj.CreateItem(0)
With Single_Mail
.Subject = Subject
.To = Send_To
.Cc = Cc
.Bcc = Bcc
.Body = Body
.send
End With
End If
Next
Exit Sub
debugs:
If Err.Description <> "" Then MsgBox Err.Description
End Sub

Cách tự động gửi email từ Excel dựa trên ngày

Code Explanation

  • First, we declared some necessary variables:rng and Date_Range dưới dạng Phạm vi .
  • Then we define the range for Date_Range .
  • After that, we use Value in a VBA IF Statement and also set Subject , Send_From , Send_To , Cc , Bcc and Body to String . Also, we set Email_Obj and Single_Mail as Variant .
  • Then we set the text value for Subject , Send_From , Send_To , Cc and Bcc .
  • Later, we create an Outlook Application Object which we define by Email_Obj . Also, we use Single_Mail to create an item for Email_Obj .
  • After that, we define Subject , Send_To , Cc , Bcc , Body as the necessary parts of an Email by a With Statement . We also put the .Send command in this statement.

  • Now, go back to your sheet and run the Macro named SendEmail01 as it is the name of your current Macro .

Cách tự động gửi email từ Excel dựa trên ngày

  • After that, you may see a warning box from Microsoft Outlook . Nhấp vào Cho phép .

Cách tự động gửi email từ Excel dựa trên ngày

This operation will send the Email to the addresses that you put in the corresponding message boxes .

This is the main Email .

Cách tự động gửi email từ Excel dựa trên ngày

And below here is the Carbon Copy of the Email .

Cách tự động gửi email từ Excel dựa trên ngày

Thus you can automatically send an Email from Excel based on the date . 

Đọc thêm: How to Send Email Automatically When Condition Met in Excel

Phần thực hành

In this section, I’m giving you the dataset that we used in this article so that you can practice on your own.

Cách tự động gửi email từ Excel dựa trên ngày

Những điều cần nhớ

Always open and log into your Outlook  account to run the VBA  codes in this article.

Kết luận

The bottom line is, that you will learn effective methods on how to automatically send Email from Excel based on date . If you have any better ideas or feedback, please share them in the comment box. This will help me enrich my upcoming articles.

Các bài viết có liên quan

  • [Solved]:Share Workbook Not Showing in Excel (with Easy Steps)
  • How to Send Email from Excel List (2 Effective Ways)
  • How to Send an Editable Excel Spreadsheet by Email (3 Quick Methods)
  • Macro to Send Email from Excel (5 Suitable Examples)
  • Macro to Send Email from Excel with Body (3 Useful Cases)
  • Excel Macro:Send Email to an Address in Cell (2 Easy Ways)