Làm thế nào để gửi email nếu ngày đến hạn đã được đáp ứng trong Excel?
Như được hiển thị trong ảnh chụp màn hình bên dưới, nếu ngày đến hạn trong cột C nhỏ hơn hoặc bằng 7 ngày (ví dụ: ngày hiện tại là 2017/9/13), một email sẽ được gửi đến người nhận được chỉ định trong cột A và nội dung được chỉ định trong cột B không được hiển thị trong phần nội dung của email. Bạn có thể làm như thế nào để đạt được nó? Bài viết này cung cấp mã VBA để giúp bạn thực hiện tác vụ này.
Gửi email nếu ngày đến hạn đã được đáp ứng với mã VBA
Gửi email nếu ngày đến hạn đã được đáp ứng với mã VBA
Vui lòng làm như sau để gửi email nhắc nhở nếu ngày đến hạn đã được đáp ứng trong Excel.
1. Nhấn nút Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng nhấp vào Chèn > Mô-đun. Sau đó sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun.
Mã VBA: Gửi email nếu ngày đến hạn bị đóng trong Excel
Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
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 = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
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 = "<br><br>"
xMailBody = "<HTML><BODY>"
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & "</BODY></HTML>"
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Chú ý: Dòng Nếu CDate (xRgDateVal) - Ngày <= 7 và CDate (xRgDateVal) - Ngày> 0 Thì trong mã VBA có nghĩa là ngày đến hạn phải lớn hơn 1 ngày và nhỏ hơn hoặc bằng 7 ngày. Bạn có thể thay đổi nó khi bạn cần.
3. nhấn các Phím F5 để chạy mã. Trong lần xuất hiện đầu tiên Kutools cho Excel hộp thoại, vui lòng chọn phạm vi cột ngày đến hạn và sau đó nhấp vào OK cái nút. Xem ảnh chụp màn hình:
4. Sau đó, thứ hai Kutools cho Excel hộp thoại bật lên, vui lòng chọn phạm vi cột tương ứng chứa địa chỉ email của người nhận và nhấp vào OK cái nút. Xem ảnh chụp màn hình:
5. Cuối cùng Kutools cho Excel hộp thoại, chọn nội dung bạn muốn hiển thị trong nội dung email, sau đó bấm vào OK .
Sau đó, một email sẽ được tạo tự động với người nhận, chủ đề và nội dung được chỉ định được liệt kê ra nếu ngày đến hạn trong cột C nhỏ hơn hoặc bằng 7 ngày. Vui lòng nhấp vào Gửi để gửi email.
Chú ý:
1. Mỗi email được tạo tương ứng với một ngày đến hạn. Ví dụ: nếu có ba ngày đến hạn đáp ứng tiêu chí, ba thư email sẽ được tạo tự động.
2. Mã này sẽ không được kích hoạt nếu không có ngày nào đáp ứng tiêu chí.
3. Mã VBA chỉ hoạt động khi bạn sử dụng Outlook làm chương trình email của mình.
Các bài liên quan:
- Làm cách nào để tự động gửi email dựa trên giá trị ô trong Excel?
- Làm cách nào để gửi email qua Outlook khi sổ làm việc được lưu trong Excel?
- Làm thế nào để gửi email nếu một ô nhất định được sửa đổi trong Excel?
- Làm thế nào để gửi email nếu nút được nhấp trong Excel?
- Làm cách nào để gửi lời nhắc hoặc thông báo qua email nếu sổ làm việc được cập nhật trong Excel?
Công cụ năng suất văn phòng tốt nhất
Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian. Bấm vào đây để có được tính năng bạn cần nhất...
Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều
- Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
- Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
- Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!