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