Vba 当收件箱中的项目声明为mailitems时出现类型不匹配错误
我在Outlook中有以下VBA代码,可以将邮件移动到旧的个人文件夹中。代码如下: 我在objItem的下一行得到一个异常(看表,它被设置为nothing) 什么会导致objItem为null,从而导致下一个objItem行中出现类型不匹配异常Vba 当收件箱中的项目声明为mailitems时出现类型不匹配错误,vba,outlook,Vba,Outlook,我在Outlook中有以下VBA代码,可以将邮件移动到旧的个人文件夹中。代码如下: 我在objItem的下一行得到一个异常(看表,它被设置为nothing) 什么会导致objItem为null,从而导致下一个objItem行中出现类型不匹配异常 Sub MoveOldMailFromInbox() Dim objFolder As Outlook.MAPIFolder Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem, ma
Sub MoveOldMailFromInbox()
Dim objFolder As Outlook.MAPIFolder
Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem, mail As Outlook.MailItem
Set objNS = Application.GetNamespace("MAPI")
Dim Inbox As MAPIFolder
Set Inbox = objNS.GetDefaultFolder(olFolderInbox)
Dim mailToMove As New Collection
Dim EightyFiveDaysAgo As Date
EightyFiveDaysAgo = DateAdd("d", -85, Date)
Set objFolder = objNS.Folders("PersonalFolders").Folders("InboxOlderThan85Days")
If objFolder Is Nothing Then
MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
End If
For Each objItem In Inbox.Items
If objFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail And objItem.ReceivedTime < EightyFiveDaysAgo Then
mailToMove.Add objItem
End If
End If
Next objItem
For Each mail In mailToMove
mail.UnRead = False
mail.Move objFolder
Next mail
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
End Sub
子移动OldMailFromInbox()
将objFolder设置为Outlook.MAPIFolder
将对象设置为Outlook.NameSpace,将对象设置为Outlook.MailItem,将邮件设置为Outlook.MailItem
设置objNS=Application.GetNamespace(“MAPI”)
将收件箱设置为MAPI文件夹
设置Inbox=objNS.GetDefaultFolder(olFolderInbox)
Dim mailToMove作为新收藏
黯淡的八五维达西米作为日期
EightyFiveDaysAgo=日期添加(“d”,-85,日期)
设置objFolder=objNS.Folders(“PersonalFolders”).Folders(“InboxOlder超过85天”)
如果objFolder为空,则
MsgBox“此文件夹不存在!”,vbOKOnly+VBEQUOTION,“无效文件夹”
如果结束
对于收件箱中的每个objItem.Items
如果objFolder.DefaultItemType=olMailItem,则
如果objItem.Class=olMail且objItem.ReceivedTime
您正在遍历收件箱。Items
但您的变量objItem
被定义为MailItem
-收件箱中的项目可能并不总是MailItem
试一试
有什么更好的办法?有没有办法将其定义为一般项目,然后检查其是否为邮件项目?
Dim objItem as Object