Chúng ta sẽ sử dụng bộ dữ liệu sau bao gồm email của nhiều người, cũng như hạn chót (deadline) họ phải tuân thủ, sau đó thiết lập cảnh báo email tự động dựa trên các ngày đó.

Phương pháp 1 – Sử dụng Power Automate để tạo Cảnh báo Email tự động trong Excel
Bước 1 – Chuẩn bị bộ dữ liệu
- Làm việc với bộ dữ liệu đã nêu.
- Gửi cảnh báo email tự động theo cột Deadline (Hạn chót).

- Chọn bất kỳ ô nào trong bộ dữ liệu và nhấn Ctrl + T.
- Hộp thoại Create Table (Tạo bảng) hiện ra. Phạm vi bảng là phạm vi dữ liệu.
- Nhấn OK để tạo bảng.

- Lưu tệp Excel trên OneDrive for Business hoặc SharePoint.
- Mở ứng dụng Microsoft 365.

Bước 2 – Khởi chạy Power Automate
- Nhấp vào biểu tượng góc trên bên trái (chín chấm vuông - App Launcher).

Lưu ý: Không hoạt động với tài khoản OneDrive Personal, cần tài khoản Microsoft 365 doanh nghiệp/giáo dục.
- Nhấp All apps (Tất cả ứng dụng) để xem danh sách.

- Chọn ứng dụng Power Automate.

- Trong Power Automate, nhấp Create (Tạo) và chọn Scheduled Cloud Flow (Luồng đám mây theo lịch trình).

- Đặt tên cho luồng (Flow). Ví dụ: Automated Email Alert.
- Chọn Repeat every 1 Day (Lặp lại mỗi 1 ngày) để gửi cảnh báo hàng ngày.
- Nhấp Create.

Bước 3 – Kết nối Power Automate và Excel
- Luồng có bước Recurrence (Định kỳ).
- Nhấp New Step (Bước mới) để thêm các bước khác.

- Chọn List rows present in a table (Liệt kê hàng có trong bảng) từ tab Actions (Hành động). Nếu không thấy, hãy tìm trong ô tìm kiếm.

- Nhấp menu thả xuống Location (Vị trí). Chọn OneDrive for Business.

- Chọn OneDrive cho Document Library (Thư viện tài liệu).

- Điều hướng đến vị trí tệp và chọn tệp Excel.

- Chọn tên bảng chứa dữ liệu. Ví dụ: Table 1 trong Excel.

- Nhấp Show Advanced Options (Hiện tùy chọn nâng cao).

- Trong trường Filter Query (Truy vấn lọc), nhập:
Deadline eq '. - Nhấp Add dynamic content (Thêm nội dung động) - mở wizard nổi.
- Chuyển tab Expression (Biểu thức) và nhập công thức sau vào thanh công thức:
formatDateTime(convertFromUTC(utcNow(),'Central America Standard Time'),'yyyy-MM-dd')

Ở đây, chúng ta định dạng cột Deadline của tệp Excel theo định dạng chuẩn Central America Standard Time.
- Kết thúc bằng
'.

- Đặt DateTime Format là ISO 8601.

Bước 4 – Trích xuất danh sách Email
- Chọn Next step (Bước tiếp theo), trong ô tìm kiếm gõ select và chọn Select: Data Operation từ danh sách Actions.

- Nhấp Add dynamic content và chọn Value từ danh sách.

- Nhấp biểu tượng Text (Văn bản) sau khi chọn tùy chọn Map (Ánh xạ).

- Tìm Email trong thanh tìm kiếm và chọn Email từ danh sách.

Bước 5 – Soạn thảo (Compose) danh sách Email trích xuất
- Thêm bước mới, tìm Compose (Soạn thảo) trong thanh tìm kiếm.
- Chọn Compose.

- Thao tác Compose hiện ra, nhấp Add dynamic content.
- Trong thanh Expression, nhập công thức sau:
union(body('Select'),body('Select'))
- Nhấp OK để tiếp tục.

Bước 6 – Thêm điều khiển lặp (Apply to each) cho từng Email
- Chọn Control (Điều khiển).

- Chọn Apply to each (Áp dụng cho từng) từ tab Actions.

- Nhấp vào ô dưới Select an Output from previous steps (Chọn đầu ra từ bước trước).
- Chọn Outputs dùng biểu tượng Add dynamic content.

Bước 7 – Trích xuất dữ liệu cho từng Email
- Nhấp Add an action (Thêm hành động).

- Tìm filter array (Lọc mảng) trong thanh tìm kiếm và chọn Filter array.

- Chọn Value từ wizard hiện ra sau khi nhấp dấu cộng bên phải.

- Chọn Add dynamic content và chọn Email từ đó.

- Chọn Current item (Mục hiện tại) ở trường thứ ba.

Bước 8 – Tạo HTML cho Email cảnh báo
- Nhấp Add an action và tìm Create HTML Table (Tạo bảng HTML) trên thanh tìm kiếm.
- Chọn Create HTML Table.

- Trong trường From, nhấp ô và nhấn biểu tượng Add dynamic content.
- Từ wizard nổi, chọn Body.
- Nhấp Show advanced options.

- Từ trường Columns (Cột), chọn Custom (Tùy chỉnh).

- Nhập tên cột bạn muốn trong cột Header (Tiêu đề).
- Cột 1 của Header, viết Deadline.
- Cột 2, dùng công thức sau trong thanh Expression:
formatDateTime(item()['Deadline'],'MMM d,yyyy')

Chúng ta sẽ định dạng giá trị cột Deadline theo định dạng xác định.
- Thêm cột khác tên Topic (Chủ đề).
- Đặt giá trị cột bằng công thức sau trong thanh Expression:
item()['Topic']

Bước 9 – Tự động tạo Email trong Outlook
- Thêm action khác tên Send an email (V2) (Gửi email V2).

- Nhấp trường To (Người nhận) và nhấp Add dynamic content.
- Từ wizard nổi, chọn Current item từ danh sách.

- Viết chủ đề email trong trường Subject.
- Trong trường Body (Nội dung), nhấp Add dynamic content và chọn Output (đầu ra của Create HTML Table).

- Bạn có thể chọn tùy chọn nâng cao bằng cách nhấp Show advanced options.

- Chọn Save (Lưu).
- Luồng của bạn đã sẵn sàng. Bạn có thể kiểm tra bằng cách nhấp nút Test.

- Chọn Manually (Thủ công) để test luồng.
- Mở ứng dụng Outlook để kiểm tra email cảnh báo tự động.

Kết quả cuối cùng
- Dưới đây là tin nhắn mẫu trên ứng dụng Outlook.

Phương pháp 2 – Gửi cảnh báo Email tự động từ trang tính Excel bằng VBA
CÁC BƯỚC:
- Làm việc với bộ dữ liệu như trước.
- Nếu hạn chót (deadline) cách ngày hiện tại từ 1 đến 7 ngày, chúng ta sẽ tạo cảnh báo email tự động.

- Để mở VBA Macro, nhấn Alt + F11.

- Cửa sổ Microsoft Visual Basic for Application hiện ra.
- Từ thẻ Insert, chọn tùy chọn Module.

- Dán mã VBA sau vào mô-đun:
Public Sub SendReminderMail()
' Khai báo biến
Dim XDueDate As Range, XRcptsEmail As Range, xMailContent As Range
Dim xRngDn As Range, xCrtOut As Object
Dim xValDateRng As String, xValSendRng As String
Dim k As Long, xMailSections As Object
Dim xFinalRw As Long, CrVbLf As String
Dim xMsg As String, xSubEmail As String
On Error Resume Next
' Chọn cột ngày hạn chót
Set XDueDate = Application.InputBox("Select the column for Deadline/Due Date date column:", "ExcelDemy", , , , , , 8)
If XDueDate Is Nothing Then Exit Sub
' Chọn cột email người nhận
Set XRcptsEmail = Application.InputBox("Choose the column for the email addresses of the recipients:", "ExcelDemy", , , , , , 8)
If XRcptsEmail Is Nothing Then Exit Sub
' Chọn cột nội dung nhắc nhở
Set xMailContent = Application.InputBox("In your email, choose the column with the reminded text:", "ExcelDemy", , , , , , 8)
If xMailContent Is Nothing Then Exit Sub
' Đếm số hàng
xFinalRw = XDueDate.Rows.Count
Set XDueDate = XDueDate(1)
Set XRcptsEmail = XRcptsEmail(1)
Set xMailContent = xMailContent(1)
' Mở ứng dụng MS Outlook
Set xCrtOut = CreateObject("Outlook.Application")
' Vòng lặp qua từng hàng
For k = 1 To xFinalRw
xValDateRng = ""
xValDateRng = XDueDate.Offset(k - 1).Value
' Điều kiện ngày hạn chót
If xValDateRng <> "" Then
' Gửi mail nếu hiệu số ngày (Due Date - Today) > 0 và <= 7
If CDate(xValDateRng) - Date <= 7 And CDate(xValDateRng) - Date > 0 Then
xValSendRng = XRcptsEmail.Offset(k - 1).Value
' Tạo chủ đề, nội dung
xSubEmail = xMailContent.Offset(k - 1).Value & " on " & xValDateRng
CrVbLf = "<br><br>"
xMsg = "<HTML><BODY>"
xMsg = xMsg & "Dear " & xValSendRng & CrVbLf
xMsg = xMsg & "Text : " & xMailContent.Offset(k - 1).Value & CrVbLf
xMsg = xMsg & "</BODY></HTML>"
' Tạo email
Set xMailSections = xCrtOut.CreateItem(0) ' olMailItem
' Đặt Subject, Body, To
With xMailSections
.Subject = xSubEmail
.To = xValSendRng
.HTMLBody = xMsg
.Display ' Hiện cửa sổ soạn thảo (hoặc .Send để gửi ngay)
'.Send
End With
Set xMailSections = Nothing
End If
End If
Next
Set xCrtOut = Nothing
End Sub

- Sau khi lưu, nhấn F5 để chạy chương trình. (Hoặc nhấp biểu tượng Play).

- Hộp thoại nhập liệu hiện ra. Chọn cột hạn chót (Deadline). Ví dụ chọn D5:D10 và nhấn OK.

- Hộp thoại thứ hai hiện ra. Chọn cột địa chỉ email. Ví dụ B5:B10, nhấn OK.

- Hộp thoại cuối cùng hiện ra. Chọn cột Topic (Chủ đề). Ví dụ C5:C10, nhấn OK.

- Tất cả email nhắc nhở sẽ được gửi trước hạn chót.
- Bạn cũng có thể chọn gửi thủ công: đặt dấu nháy đơn ' trước lệnh .Send để tắt gửi tự động (chỉ hiện cửa sổ .Display).

- Bạn sẽ nhận được các bản nháp trong Outlook. Nhấp Gửi để chọn người nhận.

Tải tệp thực hành
Các bài viết liên quan
- Cách tạo Popup Reminder (Cảnh báo bật lên) trong Excel
- Cách tạo Thông báo hoặc Nhắc nhở trong Excel
- Cách tạo Cảnh báo (Alerts) trong Excel
- Cách tắt Cảnh báo trong Excel VBA
- Cách thiết lập Công thức nhắc nhở hạn chót trong Excel
- Cách thiết lập Nhắc nhở hạn chót trong Excel
<< Quay lại: Alerts in Excel | Learn Excel
Nhận miễn phí Bài tập Excel nâng cao có lời giải!