Vba 在回复邮件时根据邮件正文中的单词将邮件移动到不同文件夹的宏

Vba 在回复邮件时根据邮件正文中的单词将邮件移动到不同文件夹的宏,vba,outlook,Vba,Outlook,我正试图根据回复时邮件正文中的单词,将邮件从进程文件夹中的移动到完成文件夹中 如果回复邮件包含单词Completed,则回复邮件必须移动到Completed文件夹中 如果回复邮件的单词已取消,则回复邮件必须移动到已取消文件夹 我尝试了下面的代码,但遇到了错误“编译错误:异常表达式” 错误是因为这两行,如何修改这两行 If InStr(1,olMail.Body, "Completed") And If InStr(1, Item.Subject, olObj.Subject)

我正试图根据回复时邮件正文中的单词,将邮件从进程文件夹中的移动到完成文件夹中

  • 如果回复邮件包含单词Completed,则回复邮件必须移动到Completed文件夹中
  • 如果回复邮件的单词已取消,则回复邮件必须移动到已取消文件夹
  • 我尝试了下面的代码,但遇到了错误“编译错误:异常表达式”

    错误是因为这两行,如何修改这两行

    If InStr(1,olMail.Body, "Completed") And
    If InStr(1, Item.Subject, olObj.Subject) > 0
    
    完整代码:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    
        Dim olNameSpace As NameSpace
        Set olNameSpace = GetNamespace("MAPI")
        
        Dim olDestFolder As folder
        Set olDestFolder = olNameSpace.Folders("xxx@xxx.com").Folders("Completed")
        
        Dim olLookUpFolder As folder
        Set olLookUpFolder = olNameSpace.Folders("xxx@xxx.com").Folders("InProgress")
    
        ' olMail is a Class. Avoid as a variable name
        'Dim olMail As MailItem
        Dim olObj As Object ' Outlook items are not necessarily mailitems
        
        For Each olObj In olLookUpFolder.Items 'loop through Tickets folder to find original mail
        
            If olObj.Class = olMail Then
    
                If InStr(1,olMail.Body, "Completed") And
                If InStr(1, Item.Subject, olObj.Subject) > 0  Then 'look for olObj.Subject in Item.Subject
    
                    olObj.Move olDestFolder ' move to InProgress folder
                    Exit For
                End If
                
            End If
        
        Next
    
    End Sub
    
    你想写

    If InStr(1,olMail.Body, "Completed") > 0 And InStr(1, Item.Subject, olObj.Subject) > 0 Then 'look for olObj.Subject in Item.Subject
    
           olObj.Move olDestFolder ' move to InProgress folder
           Exit For
    End If
    

    不,它不起作用。如果我用上面的代码替换它,它会抛出运行时错误'91'对象变量,或者用块变量not替换set@SrinevasanDhandapani没有
    olMail
    对象。参见问题中的注释。olMail是一个类。避免使用变量名,这就是为什么存在
    olObj
    。我相信所需的对象是