Excel'de son tarih karşılanırsa e-posta nasıl gönderilir?
Aşağıdaki ekran görüntüsünde gösterildiği gibi, sütun C'deki son tarih 7 günden küçük veya eşitse (örneğin, şu anki tarih 2017/9/13), belirtilen alıcıya sütun A'daki ve e-postanın gövdesinde sütun B'deki belirtilen içerik görüntülenir. Bunu gerçekleştirmek için ne yapabilirsiniz? Bu makale, size bu görevi yerine getirmenize yardımcı olacak bir VBA kodu sağlar.
VBA kodu ile son tarih karşılandığında e-posta gönderme
VBA kodu ile son tarih karşılandığında e-posta gönderme
Lütfen Excel'de son tarih karşılandığında e-posta hatırlatması göndermek için aşağıdaki adımları izleyin.
1. Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına aynı anda basın.
2. Microsoft Visual Basic for Applications penceresinde lütfen Ekle > Modül'e tıklayın. Ardından aşağıdaki VBA kodunu Modül penceresine kopyalayıp yapıştırın.
VBA kodu: Excel'de son tarih yaklaşırsa e-posta gönder
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
Notlar: VBA kodundaki If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then satırı, son tarihin 1 günden büyük ve 7 günden küçük veya eşit olması gerektiğini belirtir. İhtiyaçlarınıza göre değiştirebilirsiniz.
3. Kodu çalıştırmak için F5 tuşuna basın. İlk açılan Kutools for Excel iletişim kutusunda, lütfen son tarih sütun aralığını seçin ve ardından Tamam düğmesine tıklayın. Ekran görüntüsüne bakın:
4. Ardından ikinci Kutools for Excel iletişim kutusu açılır, lütfen alıcıların e-posta adreslerini içeren ilgili sütun aralığını seçin ve Tamam düğmesine tıklayın. Ekran görüntüsüne bakın:
5. Son Kutools for Excel iletişim kutusunda, e-posta gövdesinde görüntülemek istediğiniz içeriği seçin ve ardından Tamam düğmesine tıklayın.
Ardından, sütun C'deki son tarih 7 günden küçük veya eşitse, belirtilen alıcı, konu ve gövde listelenerek otomatik olarak bir e-posta oluşturulur. Lütfen e-postayı göndermek için Gönder düğmesine tıklayın.
Notlar:
1. Oluşturulan her e-posta bir son tarihe karşılık gelir. Örneğin, üç son tarih kriterleri karşılar ise, üç e-posta otomatik olarak oluşturulacaktır.
2. Bu kod, hiçbir tarih kriterleri karşılamazsa tetiklenmeyecektir.
3. VBA kodu yalnızca Outlook'u e-posta programınız olarak kullandığınızda çalışır.

Kutools AI ile Excel Sihirini Keşfedin
- Akıllı Yürütme: Hücre işlemleri gerçekleştirin, verileri analiz edin ve grafikler oluşturun—tümü basit komutlarla sürülür.
- Özel Formüller: İş akışlarınızı hızlandırmak için özel formüller oluşturun.
- VBA Kodlama: VBA kodunu kolayca yazın ve uygulayın.
- Formül Yorumlama: Karmaşık formülleri kolayca anlayın.
- Metin Çevirisi: Elektronik tablolarınız içindeki dil engellerini aşın.
İlgili makaleler:
- Excel'de hücre değerine göre otomatik olarak e-posta göndermek nasıl yapılır?
- Çalışma kitabı Excel'de kaydedildiğinde Outlook üzerinden e-posta göndermek nasıl yapılır?
- Excel'de belirli bir hücre değiştirilirse e-posta göndermek nasıl yapılır?
- Excel'de butona tıklandığında e-posta göndermek nasıl yapılır?
- Excel'de çalışma kitabı güncellendiğinde e-posta hatırlatması veya bildirimi göndermek nasıl yapılır?
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!