Outlook对象上找不到的方法或数据成员

时间:2012-12-05 23:22:54

标签: vba outlook-vba

就像主题行所说的那样,我在下面的代码中收到了这个愚蠢的错误消息“Method or data memeber not found”。我不确定我需要做些什么来解决它。这可能是愚蠢的吗?在我创建变量的地方,您会注意到一个名为tempMailItem的变量。它是Outlook.MailItem类型。当我点击点运算符时,MailItem就是其中一个成员。但是当我在我正在进行转换的Outlook对象上键入点运算符时,突然MailItem不是该对象的成员之一。我不明白!发生了什么事?

艾伦

Sub MoveHarpStatMail()

Dim olapp As Outlook.Application
Dim olappns As Outlook.NameSpace
Dim oitem As Object
Dim ItemsToProcess As Outlook.Items
Dim myFolder As MAPIFolder
Dim sFilter As String
Dim tempMailItem As Outlook.MailItem

On Error GoTo LocalErr

'set outlook objects
Set olapp = New Outlook.Application
Set olappns = olapp.GetNamespace("MAPI")
Set myFolder = olappns.GetDefaultFolder(olFolderInbox)
'Filter or only MailItems received today
sFilter = "[ReceivedTime] >= " & AddQuotes(Format(Date, "ddddd"))
Set ItemsToProcess = Session.GetDefaultFolder(olFolderInbox).Items.Restrict(sFilter)

For Each oitem In ItemsToProcess
 If TypeName(oitem) = "MailItem" Then
   Set tempMailItem = DirectCast(oitem, Outlook.MailItem) '<<<< Problem is here with Outlook object
   If CheckSubject(tempMailItem.Subject) Then
     MoveToArchiveFolder (tempMailItem)
  End If
 End If
Next oitem

ExitProc:
Set olapp = Nothing
Set olappns = Nothing
Set myFolder = Nothing
Set ItemsToProcess = Nothing

Exit Sub

1 个答案:

答案 0 :(得分:2)

VBA中没有Directcast。使用:

Set tempMailItem = oitem