Vba 搜索具有特定主题的最新电子邮件
我有下面的代码工作 我现在需要找到最新的电子邮件与该主题行,并打开它 打开电子邮件后,我想将附件保存到桌面,并关闭打开的电子邮件Vba 搜索具有特定主题的最新电子邮件,vba,outlook,Vba,Outlook,我有下面的代码工作 我现在需要找到最新的电子邮件与该主题行,并打开它 打开电子邮件后,我想将附件保存到桌面,并关闭打开的电子邮件 Sub SearchOL() Dim olApp As Outlook.Application Dim olNs As NameSpace Dim Fldr As MAPIFolder Dim olMail As Variant Dim i As Integer Set olApp = New Outlook.Application Set olN
Sub SearchOL()
Dim olApp As Outlook.Application
Dim olNs As NameSpace
Dim Fldr As MAPIFolder
Dim olMail As Variant
Dim i As Integer
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
i = 1
For Each olMail In Fldr.Items
If InStr(olMail.Subject, "DNP Warn and Pend Event") <> 0 Then
olMail.Display
i = i + 1
End If
Next olMail
End Sub
Sub SearchOL()
Dim olApp作为Outlook.Application
Dim-olNs作为名称空间
将Fldr设置为MAPI文件夹
以电子邮件作为变体
作为整数的Dim i
Set olApp=newoutlook.Application
Set olNs=olApp.GetNamespace(“MAPI”)
设置Fldr=olNs.GetDefaultFolder(olFolderInbox)
i=1
对于Fldr.项目中的每个olMail
如果InStr(olMail.Subject,“DNP警告和挂起事件”)为0,则
olMail.Display
i=i+1
如果结束
下一封邮件
端接头
我建议从MSDN中的文章开始
使用Items类的/或方法查找具有特定主题行的电子邮件,而不是遍历每封电子邮件并检查主题行
Sub DemoFindNext()
Dim myNameSpace As Outlook.NameSpace
Dim tdystart As Date
Dim tdyend As Date
Dim myAppointments As Outlook.Items
Dim currentAppointment As Outlook.AppointmentItem
Set myNameSpace = Application.GetNamespace("MAPI")
tdystart = VBA.Format(Now, "Short Date")
tdyend = VBA.Format(Now + 1, "Short Date")
Set myAppointments = myNameSpace.GetDefaultFolder(olFolderCalendar).Items
Set currentAppointment = myAppointments.Find("[Start] >= """ & tdystart & """ and [Start] <= """ & tdyend & """")
While TypeName(currentAppointment) <> "Nothing"
MsgBox currentAppointment.Subject
Set currentAppointment = myAppointments.FindNext
Wend
End Sub
子DemoFindNext()
将myNameSpace设置为Outlook.NameSpace
Dim tdystart作为日期
Dim tdyend As Date
将我的约会设置为Outlook.Items
将当前约会设置为Outlook.AppointmentItem
设置myNameSpace=Application.GetNamespace(“MAPI”)
tdystart=VBA.Format(现在是“短日期”)
tdyend=VBA.Format(现在+1,“短日期”)
设置myAppointments=myNameSpace.GetDefaultFolder(olFolderCalendar).Items
设置currentAppointment=MyAppoints.Find(“[Start]>=””&tdystart&“)和[Start]您尝试过什么吗?如果这是Outlook中的VBA,您根本不需要olApp
。将其替换为Application
。当您可以进行另一个循环以自动保存邮件项目中的任何附件时,为什么要显示它?请注意,收件箱中的项目可能不是邮件项目。