首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Outlook 2016 -用于触发规则的旧vba代码无法运行

Outlook 2016 -用于触发规则的旧vba代码无法运行
EN

Stack Overflow用户
提问于 2016-04-20 18:16:32
回答 2查看 854关注 0票数 0

为什么运行所有已启用规则的代码不能在outlook-2016中运行?我使用它在outlook 2007,2010和2013上没有任何问题,但它在outlook 2016上不起作用。

代码语言:javascript
复制
Sub OrginalRunActiveCatInboxRules()

Dim Session As Outlook.NameSpace
Dim Report As String
Dim currentItem As Object
Dim currentRule As Outlook.Rule
Dim rules As Outlook.rules
Dim ruleList As String
Set Session = Application.Session

Set rules = Session.DefaultStore.GetRules()

For Each currentRule In rules

   If currentRule.RuleType = olRuleReceive Then         
'determine if it’s an Inbox rule, if so, run it
       If currentRule.Enabled Then
           If Left(currentRule.name, 4) = "Cat." Then
               MsgBox currentRule.name
               currentRule.Execute ShowProgress:=True   
' Sortering niet laten zien
'               ruleList = ruleList & vbCrLf & currentRule.Name
           End If
       End If
   End If
 Next


' tell the user what you did
' ruleList = "These rules were executed against the Inbox: " & vbCrLf & ruleList
' MsgBox ruleList, vbInformation, "Macro: RunAllActiveInboxRules"
Set rules = Nothing
Set currentRule = Nothing
End Sub

代码运行到下一步,但在那里给出了一个错误。第一个规则是否启用并不重要,从Cat开始。或者不是。它只是不会转到循环中的下一项,而是生成一个错误。

我该怎么做才能让代码再次工作呢?

EN

回答 2

Stack Overflow用户

发布于 2017-01-27 03:04:50

如果某些规则标记为“来自其他计算机”,请在规则向导中进行检查。如果你有这样的代码,那么代码将在下面的行处中断:

代码语言:javascript
复制
For Each currentRule In rules

我现在也有同样的问题--我花了很多时间来解决这个问题。还有一件事可能是个问题:如果违反了任何规则,例如引用了一个不存在的目录,则规则对象将不包含任何规则。

如果对上述问题进行故障排除,请删除所有可疑规则,并开始逐条添加。

票数 1
EN

Stack Overflow用户

发布于 2021-11-27 16:03:25

当我取消选择此选项时,我的一个标记为“在此计算机上”,脚本再次工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36740713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档