Thông thường, chúng tôi cần gửi email cho khách hàng của chúng tôi khi một điều kiện Được hoàn thành. Bài viết này sẽ cho bạn thấy 3 các phương pháp để gửi một email nếu điều kiện được đáp ứng trong Excel . Để chứng minh các phương pháp của mình, chúng tôi đã chọn tập dữ liệu có 3 cột :“ Tên ”,“ Email ”Và“ Thanh toán Đến hạn ”.
3 cách để gửi email nếu có điều kiện trong Excel
1. Sử dụng VBA để gửi email nếu giá trị ô thay đổi trong Excel
Đối với phương pháp đầu tiên, chúng tôi sẽ áp dụng Excel VBA mã để gửi một email khi một điều kiện được đáp ứng . Đầu tiên, chúng tôi sẽ đưa ra Mô-đun VBA cửa sổ, sau đó chúng tôi sẽ nhập mã của mình và thực thi để gửi email . Hơn nữa, trong trường hợp này, tiêu chí thực thi mã của chúng tôi sẽ là khi giá trị ô thay đổi.
Các bước:
- Đầu tiên, Nhấp chuột phải về “ Thay đổi giá trị ô ”Trang tính.
- Thứ hai, chọn Xem mã .
- Thứ ba, nhập mã này.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range("D5"), Target) Is Nothing Then
If IsNumeric(Target.Value) And Target.Value > 700 Then
Call Send_Email_Condition_Cell_Value_Change
End If
End If
End Sub
Phân tích mã VBA
Ở đây, chúng tôi sẽ sử dụng Sub riêng tư . Bởi vì chúng tôi sẽ không thực thi mã này qua Macro cửa sổ. Mã này sẽ tự chạy khi có ô thay đổi giá trị.
- Đầu tiên, chúng tôi đang sử dụng Sub riêng tư nơi diễn ra sự kiện Worksheet_Change .
- Thứ hai, chúng tôi đang giới hạn số lượng ô đến 1 và ô đó là D5 .
- Thứ ba, chúng tôi đang kiểm tra xem nó có lớn hơn 700 .
- Cuối cùng, nếu điều kiện được đáp ứng thì Thủ tục phụ Send_Email_Condition_Cell_Value_Change sẽ thực thi.
- Cuối cùng, Lưu và đóng cửa sổ này.
Bây giờ, chúng tôi sẽ nhập mã vào Mô-đun cửa sổ. Để hiển thị Mô-đun VBA , hãy làm theo những điều này -
- Đầu tiên, từ Nhà phát triển tab>>> chọn Visual Basic .
Ngoài ra, bạn có thể nhấn ALT + F11 để hiển thị VBA cửa sổ.
- Thứ hai, từ Chèn >>> chọn Mô-đun .
Trong cửa sổ này, chúng tôi sẽ nhập mã của mình.
- Nhập mã sau.
Sub Send_Email_Condition_Cell_Value_Change()
Dim pApp As Object
Dim pMail As Object
Dim pBody As String
Set pApp = CreateObject("Outlook.Application")
Set pMail = pApp.CreateItem(0)
pBody = "Hello, " & Range("B5").Value & vbNewLine & _
"You've Payment Due." & vbNewLine & _
"Please Pay it to avoid extra fees."
On Error Resume Next
With pMail
.To = Range("C5").Value
.CC = ""
.BCC = ""
.Subject = "Request For Payment"
.Body = pBody
.Display 'We can use .Send to Send the Email
End With
On Error GoTo 0
Set pMail = Nothing
Set pApp = Nothing
End Sub
Phân tích mã VBA
- Đầu tiên, chúng tôi đang gọi Thủ tục phụ của chúng tôi Send_Email_Condition_Cell_Value_Change .
- Thứ hai, chúng tôi đang khai báo Biến các loại.
- Thứ ba, chúng tôi đang chọn Outlook là Ứng dụng Thư của chúng tôi .
- Sau đó, email nội dung được đặt trong mã của chúng tôi.
- Sau đó, “ .Hiển thị ”Được sử dụng ở đây để hiển thị email của chúng tôi . Do đó, chúng tôi sẽ cần nhấn Gửi để gửi theo cách thủ công email . Hơn nữa, chúng tôi có thể sử dụng “ .Send ”Để gửi email mà không cần hiển thị.
- Sau đó, Lưu và đóng Mô-đun .
Bây giờ, trong tập dữ liệu của chúng tôi, chúng tôi có thể nhập 699 và sẽ không có gì xảy ra.
Tuy nhiên, nếu chúng ta nhập 801 (hơn 700 ), sau đó mã của chúng tôi sẽ thực thi.
Email Outlook tùy chọn gửi sẽ được hiển thị. Chúng tôi có thể nhấn Gửi để gửi email địa chỉ.
Đọc thêm: Cách gửi email từ danh sách Excel (2 cách hiệu quả)
2. Sử dụng VBA để gửi email nếu đáp ứng nhiều điều kiện
Đối với phương pháp thứ hai, chúng tôi đã thay đổi tập dữ liệu của mình. Chúng tôi sẽ gửi email khi nhiều điều kiện được đáp ứng trong phương pháp này. Hơn nữa, chúng tôi sẽ sử dụng 2 Thủ tục phụ trong một Mô-đun cho điều này. Nếu mã của chúng tôi hoạt động như dự định, thì chúng tôi sẽ gửi email đến 2 Mọi người. Hơn nữa, chúng tôi sẽ đính kèm tệp vào email của chúng tôi .
Các bước:
- Đầu tiên, như được hiển thị trong phương pháp đầu tiên , hiển thị Mô-đun cửa sổ và nhập mã này.
Option Explicit
Sub Send_Email_Condition()
Dim xSheet As Worksheet
Dim mAddress As String, mSubject As String, eName As String
Dim eRow As Long, x As Long
Set xSheet = ThisWorkbook.Sheets("Conditions")
With xSheet
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
mAddress = .Cells(x, 3)
mSubject = "Request For Payment"
eName = .Cells(x, 2)
Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName)
End If
Next x
End With
End Sub
Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String)
Dim pApp As Object
Dim pMail As Object
Set pApp = CreateObject("Outlook.Application")
Set pMail = pApp.CreateItem(0)
With pMail
.To = mAddress
.CC = ""
.BCC = ""
.Subject = mSubject
.Body = "Mr./Mrs. " & eName & ", Please pay it within the next week."
.Attachments.Add ActiveWorkbook.FullName 'Send The File via Email
.Display 'We can use .Send here too
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
Phân tích mã VBA
- Đầu tiên, chúng tôi gọi Thủ tục phụ đầu tiên của chúng tôi Gửi_Email_Condition .
- Thứ hai, chúng tôi đang khai báo Biến loại và cài đặt “ Điều kiện ”Là Trang tính của chúng tôi .
- Thứ ba, hàng cuối cùng số được tìm thấy. Hơn nữa, giá trị của chúng tôi bắt đầu từ hàng 5 , do đó chúng tôi đã đặt hàng 5 đến hàng cuối cùng trong mã của chúng tôi.
- Sau đó, hãy gọi Thủ tục phụ thứ hai của chúng tôi Gửi_Email_With_Multiple_Condition .
- Sau đó, chúng tôi sẽ chọn Outlook là Ứng dụng Thư của chúng tôi .
- Sau đó, đặt email nội dung trong mã của chúng tôi.
- Ở đây, chúng tôi đang đính kèm Excel gửi bằng email sử dụng Tệp đính kèm phương pháp.
- Sau đó, “ .Hiển thị ”Được sử dụng ở đây để hiển thị email của chúng tôi . Do đó, chúng tôi sẽ cần nhấn Gửi để gửi theo cách thủ công email . Hơn nữa, chúng tôi có thể sử dụng “ .Send ”Để gửi email mà không cần hiển thị.
- Thứ hai, Lưu và đóng Mô-đun .
Bây giờ, chúng tôi sẽ mang đến Macro cửa sổ để thực thi mã của chúng tôi.
- Đầu tiên, từ Nhà phát triển tab>>> chọn Macro .
Macro cửa sổ sẽ bật lên.
- Thứ hai, chọn “ Send_Email_Condition ”.
- Cuối cùng, nhấn Chạy .
Điều này sẽ thực thi mã của chúng tôi. Hai người đã gặp nhau điều kiện của chúng tôi , do đó chúng tôi sẽ thấy hai email cửa sổ tại đây.
Đọc thêm: Cách gửi email tự động khi có điều kiện trong Excel
Bài đọc tương tự
- Cách Bật Chia sẻ Sổ làm việc trong Excel
- Cách gửi hàng loạt email từ Outlook bằng Excel (3 cách)
- Macro để Gửi Email từ Excel với Nội dung (3 Trường hợp Hữu ích)
- Cách Áp dụng Macro để Gửi Email từ Excel với Phần đính kèm
- Cách Chia sẻ Tệp Excel Trực tuyến (2 Phương pháp Dễ dàng)
3. Gửi Email trong Excel Dựa trên Điều kiện Ngày
Đối với phương pháp cuối cùng, chúng tôi sẽ gửi email nếu thời hạn trong vòng một tuần kể từ ngày hiện tại. Hôm nay là ngày 19 tháng 5 2022 khi viết bài báo này. Do đó, chỉ có một hàng trong vòng bảy ngày. Đó là hàng 5 . Chúng tôi sẽ gửi một email cho người đó bằng VBA mã.
Các bước:
- Đầu tiên, như được hiển thị trong phương pháp đầu tiên , hiển thị Mô-đun cửa sổ và nhập mã này.
Public Sub Send_Email_Date_Condition()
Dim rDate, rSend, rText As Range
Dim pApp, pItem As Object
Dim LRow, x As Long
Dim lineBreak, pBody, rSendValue, mSubject As String
On Error Resume Next
Set rDate = Application.InputBox("Select Deadline Range:", "Exceldemy", , , , , , 8)
If rDate Is Nothing Then Exit Sub
Set rSend = Application.InputBox("Select Email Range:", "Exceldemy", , , , , , 8)
If rSend Is Nothing Then Exit Sub
Set rText = Application.InputBox("Select Email Topic Range:", "Exceldemy", , , , , , 8)
If rText Is Nothing Then Exit Sub
LRow = rDate.Rows.Count
Set rDate = rDate(1)
Set rSend = rSend(1)
Set rText = rText(1)
Set pApp = CreateObject("Outlook.Application")
For x = 1 To LRow
rDateValue = ""
rDateValue = rDate.Offset(x - 1).Value
If rDateValue <> "" Then
If CDate(rDateValue) - Date <= 7 And CDate(rDateValue) - Date > 0 Then
rSendValue = rSend.Offset(x - 1).Value
mSubject = rText.Offset(x - 1).Value & " on " & rDateValue
lineBreak = "<br><br>"
pBody = "<HTML><BODY>"
pBody = pBody & "Dear " & rSendValue & lineBreak
pBody = pBody & rText.Offset(x - 1).Value & lineBreak
pBody = pBody & "</BODY></HTML>"
Set pItem = pApp.CreateItem(0)
With pItem
.Subject = mSubject
.To = rSendValue
.HTMLBody = pBody
.Display 'We can also use .Send here
End With
Set pItem = Nothing
End If
End If
Next
Set pApp = Nothing
End Sub
Phân tích mã VBA
- Đầu tiên, chúng tôi gọi Thủ tục phụ đầu tiên của chúng tôi Send_Email_Date_Condition .
- Secondly, we’re declaring the Variable types and setting “Conditions ” as our Sheet .
- Thirdly, we’re using InputBox to set the range of our values.
- After that, we’re selecting Outlook as our Mail Application .
- Then, we’re using the VBA CDate function to check if a date is within seven days from the current date.
- Then, set the email content in our code.
- After that, use “.Display ” to show our email . Therefore, we’ll need to press Send manually to send the emails . Moreover, we can use “.Send ” to send email without displaying.
- Secondly, Save and close the Module .
- Thirdly, as shown in method 2 , bring up the Macro cửa sổ.
- Then, select “Send_Email_Date_Condition ” and press Run .
- Firstly, select the date column và nhấn OK .
- Secondly. select the email column và nhấn OK .
- Thirdly, select the email content column và nhấn OK .
- Then we’ll see the email dialog box. We can press Send to achieve our goal.
Đọc thêm: How to Automatically Send Email from Excel Based on Date
Những điều cần nhớ
- In all our methods, Outlook was our default email Application . You may need to use different codes for separate Applications .
Phần thực hành
We’ve added practice datasets for each method in the Excel file.
Kết luận
We’ve shown you 3 methods to send an email if conditions met trong Excel . Thanks for reading, keep excelling!
Các bài viết có liên quan
- Cách Gửi Email từ Excel với Nội dung Sử dụng Macro (với các Bước Dễ dàng)
- How to Send Automatic Email from Excel to Outlook (4 Methods)
- Tự động gửi Email từ Excel Dựa trên Nội dung Ô (2 Phương pháp)
- Cách Tự động Gửi Tệp Excel tới Email (3 Phương pháp Thích hợp)
- Gửi Email Nhắc nhở Tự động từ Trang tính Excel Sử dụng VBA
- How to See Who Is in a Shared Excel File (With Quick Steps)