Outlook VBA规则。已启用但不起作用

Outlook VBA规则。已启用但不起作用,vba,outlook,Vba,Outlook,我正在尝试编写一个脚本,用于在特定规则的开/关之间切换,但它似乎不起作用。以下是我所拥有的: Public Sub ToggleFwd() Dim olRules As Outlook.Rules Dim olRule As Outlook.Rule Set olRules = Application.Session.DefaultStore.GetRules Set olRule = olRules.Item("Forward Mail Info")

我正在尝试编写一个脚本,用于在特定规则的开/关之间切换,但它似乎不起作用。以下是我所拥有的:

Public Sub ToggleFwd()

    Dim olRules As Outlook.Rules
    Dim olRule As Outlook.Rule

    Set olRules = Application.Session.DefaultStore.GetRules
    Set olRule = olRules.Item("Forward Mail Info")

    If olRule.Enabled = True Then
        olRule.Enabled = False
    Else
        olRule.Enabled = True
    End If

End Sub
我还在即时部分中尝试了以下代码:

Application.Session.DefaultStore.GetRules.Item(“转发邮件信息”).Enabled=True


这似乎也没什么作用。有什么问题吗?

发现我错过了什么

在最后加上这个,现在它可以工作了:

olRules.Save

发现我错过了什么

在最后加上这个,现在它可以工作了:

olRules.Save

帮自己一个忙:删除
If…Else…EndIf
块,并使用
Not
逻辑运算符
olRule.Enabled=未启用olRule.Enabled
。还要注意的是,将
布尔值/表达式与
If
条件下的
布尔值/表达式进行比较总是过分<代码>如果{bool expression},那么
就足够了。帮自己一个忙:删除
If…Else…EndIf
块,并使用
Not
逻辑运算符
olRule.Enabled=未启用olRule.Enabled
。还要注意的是,将
布尔值/表达式与
If
条件下的
布尔值/表达式进行比较总是过分
如果{bool expression},那么
就足够了。