2017-06-05 138 views
0

使用Outlook 2010時,我想將「停止處理更多規則」添加到規則中。在需要時停止處理更多規則

我有一個使用Outlook中的常規規則接口定義的規則。這條規則是許多規則之一,除了這個規則之外,所有規則都「停止處理更多的規則」。該規則運行一個腳本。這個沒有「停止處理更多的規則」。在腳本運行之前,我不知道是否要停止處理更多規則。我不想在VBA中更改此規則(或任何規則),只需在VBA腳本中決定是否停止處理更多規則。我使用

代碼(編輯了一點)

Public Sub checkforvalidfiletype(Item As Outlook.MailItem) 
    Dim olkAtt As Outlook.Attachment 
    Dim orule As Outlook.Rules 
    Dim oRuleAction As Outlook.RuleAction 
    'Check each attachment 
    Stop 
    For Each olkAtt In Item.Attachments 
     'If the attachment's file name ends with .xls .csv or .xlsx 
     If Right(LCase(olkAtt.FileName), 4) = ".xls" Or Right(LCase(olkAtt.FileName), 4) = ".csv" Or Right(LCase(olkAtt.FileName), 5) = ".xlsx" Then 
      'then assign it to the Unknown .xls .xlxs or .csv to be processed category 
      Item.Categories = "Unknown .xls .xlxs or .csv to be processed" 
      Item.Save 
      'and stop processing more rules 
      Set oRuleAction = orule.Actions.Stop 
      With oRuleAction 
       .Enabled = True 
      End With 
      'No need to check any of this message's remaining attachments (just one valid attachment is enough for us to want to know about it) 
      Exit For 
     End If 
    Next 
    Set olkAtt = Nothing 
End Sub 

我得到一個運行時錯誤「91」對象變量或帶塊變量未設置錯誤,在Set oRuleAction = orule.Actions.Stop線。 (我有正確的對象庫引用。)

回答

0

你可能現在已經想通了。剛剛從您發佈的東西,在oRule對象未設置,你可能需要規則對象,從中將設置規則的對象...

Dim colRules As Outlook.Rules 
Dim oRule As Outlook.Rule 

例證類似的代碼爲: https://msdn.microsoft.com/en-us/library/office/ff867254(v=office.14).aspx

+0

好的,但是這樣做不僅僅是改變現有規則以包含「停止處理更多規則」的行爲。如果這樣做不是我想要做的,我想在這個特定的場合停止處理更多的規則,將現有規則(以及其他所有規則)保持不變? – larcy

+0

也許我應該更清楚一點,也許我不是很好地解釋自己。我有一個在Outlook中使用普通規則接口定義的規則(即不在VBA中)。這條規則是許多規則之一,除了這個規則之外,所有規則都「停止處理更多的規則」。該規則只是運行一個腳本。這一個沒有「停止處理更多規則」的原因是因爲直到腳本運行,我不知道是否要停止處理更多的規則。我不想在VBA中更改此規則(或任何規則),只需在VBA腳本中決定是否停止處理更多規則。 – larcy

+0

我有一個項目里程碑,我需要在今天結束營業時見面,所以我必須簡短 - 道歉 - 但我的建議會迴應你的陳述「然後我得到一個運行時錯誤'91'對象變量或者在塊變量未設置錯誤的情況下,在Set oRuleAction = orule.Actions.Stop行「...沒有看到你所有的代碼,這通常表明」oRule「沒有被設置...並設置一個oRule ,您需要首先設置所有規則的「集合」,然後將oRule設置爲您要採取行動的特定規則......希望這有助於您! – JeffB