新版Outlook能否重新应用已创建的规则?
新版Outlook能否重新应用已创建的规则?
当然可以重新应用已创建的规则!针对你遇到的这种批量创建规则后,因前一个规则还在运行导致后续规则无法自动执行的情况,我给你分享几个实用的解决办法:
方法一:通过Outlook界面手动触发
这是最直观的方式,适合快速操作:
- 点击顶部菜单栏的「规则」按钮(或者进入设置,找到「邮件」>「规则」选项)
- 在规则列表里,按住Ctrl键选中你想要重新应用的所有规则(也可以直接全选)
- 点击列表上方的「运行规则」,选择「立即运行规则」
- 在弹出的窗口里,选择要应用规则的目标文件夹(比如你的收件箱),确认后就能触发规则重新执行了
方法二:使用VBA脚本自动化处理
如果需要更灵活的批量操作,或者想把这个流程自动化,VBA脚本会很有用:
- 打开Outlook,按下
Alt+F11打开VBA编辑器 - 在左侧的「项目」面板里,右键点击你的Outlook项目,选择「插入」>「模块」
- 把下面的代码粘贴到模块中:
Sub ReApplyInboxRules() Dim allRules As Outlook.Rules Dim singleRule As Outlook.Rule Dim inboxFolder As Outlook.Folder ' 获取默认收件箱 Set inboxFolder = Application.Session.GetDefaultFolder(olFolderInbox) ' 获取当前邮箱的所有规则 Set allRules = Application.Session.DefaultStore.GetRules ' 遍历所有启用的规则,重新应用到收件箱 For Each singleRule In allRules If singleRule.Enabled Then ' ShowProgress:=True 会显示规则运行的进度窗口 singleRule.Execute Folder:=inboxFolder, ShowProgress:=True End If Next singleRule MsgBox "所有启用的规则已重新应用到收件箱!", vbInformation End Sub
- 按下F5运行这个宏,它会自动帮你执行所有启用的规则,完成后还会弹出提示框
如果你只想运行特定的某几个规则,可以在代码里添加判断条件,比如:
' 只运行名称包含"自动分类"的规则 If singleRule.Enabled And InStr(singleRule.Name, "自动分类") > 0 Then singleRule.Execute Folder:=inboxFolder, ShowProgress:=True End If
小提醒:下次批量创建规则时,建议等前一个规则的运行进度完成(可以在Outlook右下角的通知栏查看)后,再创建下一个,这样就能避免规则无法自动执行的问题啦。
备注:内容来源于stack exchange,提问作者Jaro Loon




