我每个工作日收到两次电子邮件报告。有时发送这些报告的计算机崩溃并且没有发送电子邮件。我想要做的是使用一些Outlook VBA来检查电子邮件是否在12:15和17:05到达。
找到一封相当容易的电子邮件,但找到一个不存在的电子邮件让我有点头疼。我现在有一个类模块设置(我假设这将是要走的路)并且如果没有收到电子邮件的话,我会想要做的代码,但无法弄清楚如何检查电子邮件那些时候。它可能很简单,但之前没有真正在Outlook VBA中编写脚本,所以我不知道从哪里开始。
答案 0 :(得分:1)
评论中指出的方法。
Outlook VBA - Run a code every half an hour
Outlook VBA - Run a code every half an hour with outlook 2010 64 bits
一种可能更简单的替代方案。使用提醒设置定期任务。
在ThisOutlookSession
中Private Sub Application_Reminder(ByVal Item As Object)
If Item.Class = olTask Then
If InStr(Item.Subject, "subject") > 0 Then
ReminderUnreceivedMail
End If
End If
End Sub
Sub ReminderUnreceivedMail()
Dim Itms As Items
Dim srchSender As String
Dim srchSubject As String
Set Itms = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
srchSender = "sender"
srchSubject = "subject"
Set Itms = Itms.Restrict("[SenderName] = 'sender' And [Subject] = 'subject' And [SentOn] > '" & Format(Date, "yyyy-mm-dd") & "'")
If Itms.count = 0 Then
MsgBox "No " & srchSubject & " email on " & Format(Date, "yyyy-mm-dd")
End If
Set Itms = Nothing
End Sub