Könnt ihr mir helfen, das folgende Skript zu reparieren? Was ich brauche, ist, wenn der E-Mail-Text <enthält, wird er an meine persönliche E-Mail weitergeleitet. Ich verwende Outlook 2010. Hier ist ein Beispiel für einen E-Mail-Text:
"Das war schnell! Der Neustart des Modems dauerte nur <60 Sekunden."
Wenn es ein Leerzeichen zwischen <und 60 gibt, wird es an meine E-Mail weitergeleitet. Wenn es kein Leerzeichen gibt, wird es nicht weitergeleitet.
Public Sub FWItem(Item As Outlook.mailitem)
Dim Email As Outlook.mailitem
Dim Matches As Variant
Dim RegExp As Object
Dim Pattern As String
Set RegExp = CreateObject("VbScript.RegExp")
If TypeOf Item Is Outlook.mailitem Then
Pattern = "(\s[<]\s)"
With RegExp
.Global = False
.Pattern = Pattern
.IgnoreCase = True
Set Matches = .Execute(Item.Body)
End With
If Matches.Count > 0 Then
Debug.Print Item.subject ' Print on Immediate Window
Set Email = Item.Forward
Email.subject = Item.subject
Email.Recipients.Add "[email protected]"
Email.Save
Email.Send
End If
End If
Set RegExp = Nothing
Set Matches = Nothing
Set Email = Nothing
Set Item = Nothing
End Sub
Hier ist das Muster, mit dem ich den E-Mail-Text gefiltert habe:
Pattern = "(\s[<]\s)"
Aber es hat nicht funktioniert.
vba
microsoft-outlook-2010
regex
user734594
quelle
quelle
"<"
.Antworten:
Ihre Frage ist unklar. Ich gehe davon aus, dass das Problem beim regulären Ausdruck liegt und nicht, dass die E-Mail nicht gesendet wird (oder aus einem anderen Grund).
Ich denke, dein Muster muss einfach sein
Also würden Sie in Ihrem Code verwenden
Dies entspricht dem <und einem Leerzeichen unmittelbar danach. So wie
<60
stimmt nicht überein< 60
stimmt überein< 60
stimmt überein<60
stimmt nicht< Hello
stimmt überein stimmt übereinIch weise auf den letzten Punkt hin, der für mich möglicherweise problematisch ist, wenn jemand die Anführungszeichen aus anderen Gründen verwendet ... <Ende der Nachricht>
quelle