2017-01-09 3 views
0

Unten ist der Code, den ich benutze bitte gehen Sie es durch.Item.Body gibt "" zurück. Hat jemand eine Idee?

Sub HowManyEmails() 
    Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder 
    Dim EmailCount As Integer 
    Set objOutlook = CreateObject("Outlook.Application") 
    Set objnSpace = objOutlook.GetNamespace("MAPI") 

    On Error Resume Next 
    Set objFolder = objnSpace.Folders("Inbox") 
    If Err.Number <> 0 Then 
     Err.Clear 
     MsgBox "No such folder." 
     Exit Sub 
    End If 

    EmailCount = objFolder.Items.Count 

    MsgBox "Number of emails in the folder: " & EmailCount, , "email count" 

    Dim dateStr As String 
    Dim myItems As Outlook.Items 
    Dim myItem As Outlook.MailItem 
    Dim dict As Object 
    Dim msg As String 
    Dim CurrDate 
    Set CurrDate = Now 
    Dim opnTkt 
    Dim clsTkt As Integer 
    Dim omntrRprt As Integer 
    Dim webCht As Integer 
    Set dict = CreateObject("Scripting.Dictionary") 
    Set myItems = objFolder.Items 
    myItems.SetColumns ("SentOn") 
    'Determine date of each message: 
    For Each myItem In myItems 
     dateStr = GetDate(myItem.SentOn) 
     If Month(dateStr) <> Month(Now) Then 
      Defaults = Defaults + 1 
      'here myItem.Body return "" 
     ElseIf InStr(myItem.Body, "Process started") > 0 Then 
      omntrRprt = omntrRprt + 1 
     Else 
      def = def + 1 
     End If 
    Next myItem 

    'Output counts per day: 
    msg = "" 
    msgs = "omniture: " & vbCrLf & omntrRprt & "Web Chat:" & webCht & vbCrLf 
    MsgBox msgs 

    Set objFolder = Nothing 
    Set objnSpace = Nothing 
    Set objOutlook = Nothing 
End Sub 

Function GetDate(dt As Date) As String 
    GetDate = Year(dt) & "-" & Month(dt) & "-" & Day(dt) 
End Function 
+0

Meine Idee: Sie haben einfach eine Nachricht mit leeren Körper gefunden. Wiederholen Sie einfach die anderen Elemente. – miroxlav

+0

Eine E-Mail kann einen HTML-Textkörper, einen Textkörper oder beides enthalten. Wie Miroxlav sagt, vielleicht hat diese E-Mail keinen Körper. Was siehst du, wenn du die E-Mail über die Benutzeroberfläche anschaust? Eine andere Möglichkeit ist, dass die E-Mail einen HTML-Body aber keinen Textkörper hat. Wenn eine E-Mail beide Körper hat, wird Outlook - und andere E-Mail-Pakete (?) - den HTML-Text anzeigen und den Text ignorieren. Es scheint mir, dass, wenn es einen HTML-Textkörper gibt, der Textkörper durch Entfernen der HTML-Formatierung erstellt wurde. Wenn der Text alle in Bildern ist, was nicht unbekannt ist, kann ohne die Formatierung nichts übrig bleiben. –

Antwort

0

Thanx für Ihre Lösung, eigentlich, wenn wir ‚SetColumns()‘ verwenden und den Wert einer Variable wie i myItems.SetColumns ("SentOn") verwendet haben, können Sie nicht auf die anderen Eigenschaften dieses Elements zugreifen. Entfernen Sie es einfach und führen Sie den Code aus, der funktioniert. :) please go through the link

Verwandte Themen