Excel-VBA, wie man Antworten auf eine bestimmte E-Mail-Nachricht

Erhalte ich eine E-mail jeden Mittwoch von einem bestimmten Absender. Der Betreff dieser E-Mail ändert sich manchmal

Beispiel #1 subject "Exposure statement - COB 20150217"

Beispiel #2 Betreff "Margin-Hinweis COB-2015-Feb-10"

Dem Datum, dem Absender anzufügen ist der Tag vor dem Tag, als ich die E-mail empfangen.

Ich habe den folgenden code wich, könnte die Suche nach E-Mail und dann beantworten Sie es mit einem benutzerdefinierten text, aber ich kann nicht verwalten zu lassen, den code zu finden, der konkreten Botschaft, die mit diesem Datum in den Betreff.

Gibt es eine Möglichkeit zu suchen, die von anderen Parametern als der Gegenstand?

Sub ReplyMail_No_Movements()

Dim olApp As Outlook.Application
Dim olNs As Namespace
Dim Fldr As MAPIFolder
Dim olMail As Variant
Dim SigString As String
Dim Signature As String
Dim i As Integer

Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
i = 1

SigString = Environ("appdata") & _
                "\Microsoft\Signatures\MCC.txt"

    If Dir(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If

    On Error Resume Next

For Each olMail In Fldr.Items
If InStr(olMail.Subject, "Exposure Statement - COB date") <> 0 Then 'where date is a date that changes every wednesday
With olMail.Reply
        .to = "[email protected];[email protected]"
        .CC = "[email protected];[email protected]"
        .Body = "Dear All," & Chr(10) & _
        Chr(10) & "we agree with your portfolio here attached and according to it we see no move for today." & _
        Chr(10) & "        Best Regards." & _
        Chr(10) & _
        Chr(10) & Signature
        .Display
    End With
i = i + 1
End If
Next olMail
End Sub

Bearbeiten:
Änderte ich diesen code bit aus

If InStr(olMail.Subject, "Exposure Statement - COB date") <> 0 Then

zu

If olMail.SenderEmailAddress = "[email protected]" And olMail.ReceivedTime = Now() Then

Aber es funktioniert nicht...

Dies ist die einzige Suche combo (SenderEmailAddressthat und ReceivedTime), dass lassen Sie mich finden Sie die genaue Nachricht...

  • Stellen Sie sicher, dass Sie haben alle die Anweisungen in der Wie automatisieren von Outlook aus einem anderen Programm Artikel.
  • Sie können den Zugriff und-filter, Eigenschaften von MaiItem Klasse (hier ist eine vollständige Liste): msdn.microsoft.com/en-us/library/..., aber Sie hat nicht festlegen, was genau Sie tun möchten, zu filtern. Btw.: Ihre letzten editieren komplett verändert Sinne der Frage, so dass die Antworten keinen Sinn machen. Sollten Sie eingefügt haben, den neuen code unter die ursprüngliche Frage.
  • Das ist, warum ich fragte, wo der aktualisierte code... ich habe ein Durcheinander... 🙁
  • Der zweite Teil olMail.ReceivedTime = Now() weil Sie versuchen, filtern die Nachrichten, die empfangen werden, genau zu der Zeit, die Sie das makro ausführen. Wenn Sie wollen, dass die Nachricht vom aktuellen Tag, dann olMail.ReceivedTime>Date() sollte funktionieren
  • Ja es funktioniert, danke. Und was ist, wenn der Absender schickt mir eine weitere E-mail nach dem ersten Tag? 🙂
  • Müssen Sie markieren irgendwie die E-mail Sie bereits bearbeitet. Einfachste Lösung wäre die Verwendung Ungelesen-Eigenschaft. Filter nur "Unread = True", und setzen Sie es auf false nach der Erstellung Antworten. PS. Bereits eine Menge von Fragen, die nicht im Zusammenhang mit der ursprünglichen Frage, so erstellen Sie bitte eine andere Frage, wenn du noch weitere Probleme, auf diese Weise konnten andere es auch sehen/helfen
  • Ok, tut mir Leid, ich muss auch lernen, wie man sich zu benehmen in diesem forum 🙂

InformationsquelleAutor aurezio | 2015-02-19
Schreibe einen Kommentar