2015-06-05 47 views
0

我試圖創建一個非常簡單(因爲我是新和學習)在Outlook腳本規則2010Outlook 2010的腳本規則中使用VBA

規則是:如果一個新的郵件項目從一個特定的進來電子郵件地址,運行我的腳本並停止處理規則。 SCRIPT檢查主體是否有字符串。如果找到字符串,它會將電子郵件移動到目標文件夾1,否則將其移動到目標文件夾2.

不幸的是,我似乎無法得到腳本(下面的代碼)做任何事情(郵件剛剛到收件箱而不是在腳本中指定的任何一個文件夾)。很多這些都是從網上的例子拼湊出來的,所以我不能理解這一切,但我想我會在研究我沒有得到的東西的時候問這個問題。關於如何讓這個按預期工作的任何想法?

'Use the MailItem class of item 
Public Sub NCRFRule(Item As Outlook.MailItem) 

     Dim MAPI As NameSpace 'Don't know what this does 
     Dim dest1, dest2 As Folder 'declare destination folders 
     Dim newMail As MailItem 'set item type 

     'Don't know what this does. 
     Set MAPI = GetNamespace("MAPI") 

     'Set the destination folders 
     Set dest1 = MAPI.Folders("Inbox").Folders("NCRFs") 
     Set dest2 = MAPI.Folders("Inbox").Folders("other's NCRFs") 

     'Rule if-statement. If text is found, move mail to dest1 folder 
     If InStr(1, newMail.Body, "Your Required Action") <> 0 Then 
      newMail.Move dest1 
      GoTo cutOut: 
     End If 

     'If the above If-statement doesn't execute, text wasn't found, 
     'move mail to other destination folder. 
     newMail.Move dest2 

    cutOut: 

    End Sub 

注意:此代碼位於「ThisOutlookSession」模塊中。

回答

0

大廈尤金解釋什麼,改變

Set dest1 = MAPI.Folders("Inbox").Folders("NCRFs") 
Set dest2 = MAPI.Folders("Inbox").Folders("other's NCRFs") 

Set dest1 = MAPI.GetDefaultFolder(olFolderInbox).Folders("NCRFs") 
Set dest2 = MAPI.GetDefaultFolder(olFolderInbox).Folders("other's NCRFs") 

得到了部分工作。然後我必須刪除線

Dim newMail As MailItem 'set item type 

並用「Item」替換「newMail」的所有實例。現在它工作了!