2016-01-15 3 views
0

В моем рабочем коде будут отображаться все входящие письма, перемещенные в указанную папку. Как только он находится в папке, макрос запустится, чтобы проверить, существует ли это письмо в моем файле истории Excel.VBA Outlook Текст не добавлен в тело электронной почты

Код ниже работает таким образом, чтобы он возвращал мне значение имени Агента. Однако он не добавляет имя этого агента в электронное письмо. Является ли это правильный код для добавления текста в теле письма:

emlBody = ActiveAgnt & vbCrLf & emlBody 

Если да, то почему добавляется имя агента в теле сообщения электронной почты? Ниже приведена остальная часть кода.

Set objFolder = Session.GetDefaultFolder(olFolderInbox).Folders("For Processing") 
Set objItems = objFolder.Items 

For Each obj In objItems 
     For lgCurrentRow = 2 To lgLastRow 
      If obj.Class = olMail Then 
       strSubj = myXLApp.Worksheets("Sheet1").Cells(lgCurrentRow, "C") 
       StrSR = myXLApp.Worksheets("Sheet1").Cells(lgCurrentRow, "D") 
       StrAgnt = myXLApp.Worksheets("Sheet1").Cells(lgCurrentRow, "E") 
       emlSubj = obj.Subject 
       emlBody = obj.Body 

      '>>>>>Check if incoming email has an existing SR in History File<<<<< 
       If emlSubj Like "*" & strSubj & "*" Then 
        Debug.Print strSubj 
        '*****If existing then check if there is an existing SR 
        '*****Append to email if SR is existing 
        If StrSR <> "" Then 
         Debug.Print StrSR 
        '*****If SR is not existing check if an agent is tagged to the email. 
        '*****If agent is tagged then append agent's name to email 
        ElseIf StrAgnt <> "" Then 
         Debug.Print StrAgnt 
        End If 
        Exit For 
      '^^^^^Check if incoming email has an existing SR in History File^^^^^ 

      '>>>>>If Incoming file is not match Check Active Agents list to assign Agent<<<<< 
       ElseIf emlSubj <> "*" & strSubj & "*" Then 
         Call ActiveAgents(ActiveAgnt) 
         Debug.Print ActiveAgnt 
         emlBody = ActiveAgnt & vbCrLf & emlBody 
      '^^^^^If Incoming file is not match Check Active Agents list to assign Agent^^^^^ 

       Exit For 
          Set obj = Nothing 
          Set objItems = Nothing 
          Set objFolder = Nothing 
          Set objOL = Nothing 
          Set obj.Body = Nothing 
       End If 

      End If 

     Next 

    Next 

ответ

0

Вместо

emlBody = ActiveAgnt & vbCrLf & emlBody 

попробовать

obj.Body = ActiveAgnt & vbCrLf & obj.Body 
+0

Спасибо. Однако он работает только для выбранного письма, а не для остальной части электронной почты в папке. – Wilson

+0

Что вы говорите, тогда ваш вопрос был успешно ответил. – niton

+0

Кажется, вам нужна 'obj.Save', чтобы иметь дело со всеми неактивными. –

0

Вот код, который работал в который были включены @niton и @Doug Glancy предложения.

ElseIf emlSubj <> "*" & strSubj & "*" Then 
        Call ActiveAgents(ActiveAgnt) 
        Debug.Print ActiveAgnt 
        obj.Body = ActiveAgnt & vbCrLf & obj.Body 
        obj.Save 
Смежные вопросы