outlook vba中的对象必需错误

outlook vba中的对象必需错误,vba,outlook,Vba,Outlook,我得到这个对象所需的错误。请参阅下面的代码。我不明白为什么我会得到它。oitem变量被声明为对象,在尝试移动它之前,我对类型“MailItem”进行了测试。请告知 艾伦 Public StatsArchiveFolder作为Outlook.Folder 'StatsArchiveFolder设置为等于Outlook.Folder _____________________________________ Sub-MoveHarpStatMail() Dim olapp作为Outlook.Appl

我得到这个对象所需的错误。请参阅下面的代码。我不明白为什么我会得到它。oitem变量被声明为对象,在尝试移动它之前,我对类型“MailItem”进行了测试。请告知

艾伦

Public StatsArchiveFolder作为Outlook.Folder
'StatsArchiveFolder设置为等于Outlook.Folder
_____________________________________
Sub-MoveHarpStatMail()
Dim olapp作为Outlook.Application
将olappns设置为Outlook.NameSpace
作为对象的Dim oitem
Dim ItemsToProcess作为Outlook.Items处理
将myFolder设置为MAPIFolder
作为字符串的Dim sFilter
将tempMailItem设置为Outlook.MailItem
关于错误转到LocalErr
'设置outlook对象
Set olapp=newoutlook.Application
设置olappns=olapp.GetNamespace(“MAPI”)
设置myFolder=olappns.GetDefaultFolder(olFolderInbox)
'筛选或仅筛选今天收到的邮件项目
sFilter=“[ReceivedTime]>=”&AddQuotes(格式(日期,“ddd”))
Set ItemsToProcess=Session.GetDefaultFolder(olFolderInbox).Items.Restrict(sFilter)
对于ItemStopProcess中的每个oitem
如果TypeName(oitem)=“MailItem”,则
设置tempMailItem=oitem
如果选中Subject(tempMailItem.Subject),则

移动到存档文件夹(tempMailItem)“删除括号:

MoveToArchiveFolder tempMailItem
基本上,括号表示计算
tempMailItem
的值。
MailItem
的默认属性是电子邮件的主题,因此您的代码将
tempMailItem
的主题传递给您的函数,而不是
MailItem
本身

这里有一篇关于为什么的有趣帖子。请务必阅读Rick Rothstein的评论

MoveToArchiveFolder tempMailItem