-1

Несколько лет назад я скопировал определенный код VBA в Outlook 2007. Он запускает мои правила в текущей папке, которую я выбрал. Компания только что перешла на Outlook 2016 (Office 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

Опять же, это не заставило его работать.

1 ответ1

0

Оказывается, код в порядке. Хотя я изменил параметр безопасности макросов, чтобы разрешить запуск макросов (после установки Outlook 2016), он не вступил в силу после перезапуска Outlook. Я перезапустил его еще несколько раз, и он вступил в силу.

Интересно отметить, что я не получил всплывающее окно, в котором говорится, что макрос отключен.

Теперь проблема решена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .