Как да изпратите имейл, ако срокът е спазен в Excel?
Както е показано на екранната снимка по-долу, ако крайният срок в колона C е по-малък или равен на 7 дни (например текущата дата е 2017/9/13), се изпраща имейл до посочения получател в колона A и посоченото съдържание в колона B се показва в основния текст на имейла. Как бихте могли да го постигнете? Тази статия предоставя VBA код, който да ви помогне да изпълните тази задача.
Изпратете имейл, ако срокът е спазен с VBA код
Изпратете имейл, ако срокът е спазен с VBA код
Моля, направете следното, за да изпратите напомняне по имейл, ако крайният срок е спазен в Excel.
1. Натисни Друг + F11 клавиши едновременно, за да отворите Microsoft Visual Basic за приложения прозорец.
2. В Microsoft Visual Basic за приложения прозорец, моля щракнете Поставете > Модули. След това копирайте и поставете долния VBA код в прозореца на модула.
VBA код: Изпратете имейл, ако крайният срок е затворен в 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
бележки: Линията Ако CDate(xRgDateVal) - Дата <= 7 И CDate(xRgDateVal) - Дата > 0 След това в кода на VBA означава, че датата на падежа трябва да бъде по-голяма от 1 ден и по-малка или равна на 7 дни. Можете да го промените според нуждите си.
3. Натиснете - Клавиш F5 за изпълнение на кода. При първото изскачане Kutools за Excel в диалоговия прозорец, моля, изберете диапазона на колоната с краен срок и след това щракнете върху OK бутон. Вижте екранна снимка:
4. След това второто Kutools за Excel се появи диалогов прозорец, моля, изберете съответния диапазон от колони, който съдържа имейл адресите на получателите, и щракнете върху OK бутон. Вижте екранна снимка:
5. В последното Kutools за Excel изберете съдържанието, което искате да се покаже в тялото на имейла, след което щракнете върху OK бутон.
След това автоматично ще бъде създаден имейл с посочения получател, тема и текст, ако крайният срок в колона C е по-малък или равен на 7 дни. Моля, щракнете върху Изпрати бутон за изпращане на имейла.
бележки:
1. Всеки създаден имейл отговаря на определена дата. Например, ако има три крайни дати, които отговарят на критериите, автоматично ще бъдат създадени три имейл съобщения.
2. Този код няма да бъде задействан, ако няма дати, отговарящи на критериите.
3. Кодът на VBA работи само когато използвате Outlook като своя имейл програма.
Още по темата:
- Как автоматично да изпращате имейл въз основа на стойността на клетката в Excel?
- Как да изпратите имейл през Outlook, когато работната книга е запазена в Excel?
- Как да изпратите имейл, ако определена клетка е променена в Excel?
- Как да изпратите имейл, ако бутонът е щракнат в Excel?
- Как да изпратите имейл напомняне или известие, ако работната книга е актуализирана в Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!