Sub RunRuleMyRule()
Dim myRule As Outlook.Rules
Dim theRule As Outlook.Rule
Set myRule = Application.Session.DefaultStore.GetRules()
Set theRule = myRules.Item("rule1") 'get error here
If theRule.Enabled Then
theRule.Execute
Else
theRule.Enabled = True
theRule.Execute
End If
End Sub
当我调试它时,theRule是“Nothing”而我的代码崩溃了。我不知道还能做些什么。我知道客户端上存在规则,我手动运行规则。
答案 0 :(得分:0)
至少为了防止崩溃(我不知道为什么当你说它存在时找不到规则),试试:
Set theRule = myRules.Item("rule1")
If (theRule Is Nothing) Then Exit Sub
答案 1 :(得分:0)
Rules类的Item方法获取Index指定的Rule对象,该对象是Rules集合或规则名称的数字索引。
很可能您将错误的值传递给方法。尝试迭代所有规则并检查其名称以确保存在此规则。
您可能会发现Getting Started with VBA in Outlook 2010文章有用。