几年前我将一些特定的VBA代码复制到outlook 2007中。它在我选择的当前文件夹上运行我的规则。该公司刚刚升级到Outlook 2016(办公室365),虽然保留了VBA代码(在“ThisOutlookSession”中)但它不再有效。
是否存在一些不再支持的VBA代码?
Sub RunAllInboxRules()
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim runrule As String
Dim rulename As String
rulename = "DBLP RULE"
Set st = Application.Session.DefaultStore
Set myRules = st.GetRules
Set cf = Application.ActiveExplorer.CurrentFolder
For Each rl In myRules
If rl.RuleType = olRuleReceive Then
If rl.Name = rulename Then
rl.Execute ShowProgress:=True, Folder:=cf
runrule = rl.Name
End If
End If
Next
Set rl = Nothing
Set st = Nothing
Set myRules = Nothing
End Sub
我也试过了
Set st = Application.Session.Stores(1)
因为我看到其他人与DefaultStore有问题。那并没有解决它。
我也尝试明确说明rulename:
If rl.Name = "DBLP RULE" Then
同样,这并没有使它发挥作用。
2
究竟什么不起作用?
—
2015年
规则未针对当前选定的文件夹运行,因此此VBA代码中的某些内容显然与Outlook 2016不兼容。手动运行规则时,它按预期工作。
—
阿德里安