2015-09-18 2 views
0

Я пытаюсь сделать макрос, который автоматически изменяет категорию электронной почты после завершения некоторых действий в VBA.Как изменить категорию электронной почты в MS Outlook 2013 с помощью VBA?

создать некоторый код, который выглядит хорошо, но есть проблема с этим, что не всегда работает - иногда категория не меняются, и это похоже, что ошибки с ним:

Dim myolApp As Outlook.Application 
Dim olFolder As Outlook.MAPIFolder 
Dim ns As Outlook.NameSpace 
Set ns = Outlook.GetNamespace("MAPI") 
Set myolApp = CreateObject("Outlook.Application") 
Set olFolder = ns.GetDefaultFolder(olFolderInbox) 
Set olFolder = myolApp.ActiveExplorer.CurrentFolder 
Dim itm As Object 
Dim mailcattable As Variant 
Dim kategoria As String 

For Each itm In olFolder.Items 

For b = 0 To UBound(mailcattable) 
    If mailcattable(b) = "ABCD" Then 
     mailcattable(b) = "After ABCD" 
     kategoria = Join(mailcattable, "; ") 
     itm.Categories = kategoria 
    End If 
Next 
Next 

Можете ли вы сказать мне, как это исправить?

ответ

0

Вы никогда не сохраняете товар. Также рекомендуется сбросить переменную kategoria для каждого элемента.

Dim bModified As Boolean 
    For Each itm In olFolder.Items 
     kategoria = "" 
     bModified = false 
     For b = 0 To UBound(mailcattable) 
     If mailcattable(b) = "ABCD" Then 
      mailcattable(b) = "After ABCD" 
      kategoria = Join(mailcattable, "; ") 
      itm.Categories = kategoria 
      bModified = true 
     End If 
     Next 
     if bModified Then 
     itm.Save 
     End If 
    Next 
+0

Спасибо! Резервирование переменной «kategoria» действительно помогает! – RobRaj

Смежные вопросы