Я пытаюсь создать макрос, который может эффективно выполнять поиск в общем почтовом ящике в Outlook с моей желаемой категорией и датой получения электронного письма.
txtCat будет категории
txtDate, где я буду вводить дату в следующем формате: «мм / дд / гггг»
Private Sub CommandButton1_Click ()
Dim outlookapp
Dim olns As Outlook.Namespace
Dim Fldr As Outlook.MAPIFolder
Dim olMail As Object
Dim myTasks
Dim myrecipient As Outlook.Recipient
Dim dateString As Long
Dim strfilter As String
Set outlookapp = CreateObject("Outlook.Application")
Set olns = outlookapp.GetNamespace("MAPI")
Set myrecipient = olns.CreateRecipient("Cmaintenancesupport2")
myrecipient.Resolve
Dim strCat As String
'txtCat is the category
'txtDate is the date
Set Fldr = olns.GetSharedDefaultFolder(myrecipient, olFolderInbox)
strCat = UserForm1.txtCat.Text
strfilter = "[Categories] = """ & strCat & """"
dateString = CDate(UserForm1.txtDate.Text)
Set myTasks = Fldr.Items.Restrict(strfilter) 'filters the desired category in the SharedDefault Mailbox
Set myTasks = myTasks.Restrict("[ReceivedTime] = '" & Format(dateString, "DDDDD HH:NN") & "'") 'adds another filter by date
For Each olMail In myTasks
olMail.Display
Next
End Sub
Я установил mytasks дважды, так как я просто реструктурирую этот код из предыдущего проекта, который работает (классифицированная электронная почта> фильтр по дням> строка поиска), но почему-то он не показывает мне никаких результатов.
Что должно произойти, это после фильтра категорий, все сообщения электронной почты уже должны быть классифицированы с желаемой датой.