2016-06-10 14 views
1

Es gibt ein paar Beiträge zu diesem Thema geöffnet, aber keiner scheint zu tun, was ich brauche. Ich habe ein bisschen programmiert, aber ich habe noch nie etwas mit VBA gemacht. Jeden Tag erhalte ich eine Reihe von E-Mails zwischen 10 und 50, die alle eine Betreffzeile enthalten, beginnend mit [Tk # *******] Neue Anfrage (* = 7-stellige Nummer) Dann gibt es im Nachrichtentext ein Formular das sieht wie folgt aus:VBA Outlook 2010. Extrahieren bestimmter Outlook Body-Text zu Excel

Body Text

ich dann ein Excel-Blatt haben mit 'Benutzername' in 'C', 'das Unternehmen' in 'G', 'gültig bis' in 'H' und ‚Ticket einrichten 'in' ich '. Ich möchte zuerst die 7-stellige Ticketnummer aus dem Betreff extrahieren und in das Feld 'Ticket' eingeben, dann einfach den 'smithjoh'-Teil aus dem Login-Feld und ihn in' Benutzername 'setzen, dann wird die externe Firma aufgelistet "Firma" und schließlich das Ablaufdatum in "gültig bis".

Zuerst würde ich gerne wissen, ob dies möglich ist, da es bestimmte Teile der Daten extrahiert, und wenn ja, wenn jemand mir mit dieser Arbeit helfen könnte, die am meisten geschätzt würde. Ich habe versucht, es selbst zu tun, aber Mangel an Erfahrung hat mich ahnungslos dafür gibt es leider nichts zu arbeiten. Wenn das gemacht werden könnte, würde es mir sehr helfen, da es eine sehr langweilige manuelle Aufgabe automatisieren würde.

Danke, Mark

+0

Starten mit TK? E-Mails von Sturmtruppen erhalten? Hast du etwas, was du ausprobiert hast und es gescheitert ist, dass du hier posten kannst? Das wird normalerweise am besten erhalten, da es viele Möglichkeiten gibt, eine Katze zu häuten. Wenn Sie versucht haben und gescheitert sind, könnte es ein paar schnelle Änderungen sein, damit es funktioniert. – Rodger

+0

Alles, was ich bisher versucht habe, ist das Kopieren des gesamten Textkörpers, der großartig funktioniert. Ich habe mich online umgesehen, um zu versuchen, einen Weg zu finden, nur bestimmten Text zu erfassen, aber es scheint wirklich nichts darauf zu sein. Ich habe wirklich keine Ahnung, wo ich überhaupt anfangen soll, sorry. Tk steht für Ticket, es ist eine automatisierte Ticketnummer: P –

+1

Für bestimmten Text können Sie Reguläre Ausdrücke oder Kombinationen von Instr und Mid oder sogar Split verwenden. Es hängt auch davon ab, ob der Text oder Ihre E-Mail nur Text oder eine Tabelle ist. Sie sollten Code angeben und die aufgetretenen Probleme angeben. –

Antwort

0

Ok, wenn Sie den Körper und Titel ohne Probleme sind Grabbing dann brauchen Sie nur String-Manipulationen zu tun. Lies sie jeweils in eine Variable ein. Unter der Annahme, dass Ihr Thema "TK # ******* Neue Anfrage" ist, sollten Sie damit beginnen. Wiederholen Sie diese Logik für jeden Teil, den Sie herausziehen möchten. Sobald Sie die Werte in Variablen haben, können Sie diese Werte in Zellen setzen.

Dim sSubject as string 
Dim sBody as string 
Dim sTicket as string 
Dim sLogin as string 
Dim lLoginPos as long 
Dim iLoginLength as integer 

sTicket = Mid(sSubject,4,7) 'start 4th char and grab 7 ... if you actually have the brackets in the subject then do 5,7 

lLoginPos = InStr(sBody, "emea") + 5 'if they aren't all emea you will need to key off the "Req on behalf name" and add more to the result the result will be the e in emea so add 5 to get past that to the login. 
iLoginLength = InStr(sBody, "Req on behalf mail") - lLoginPos ' you might need to subtract an additional 1 or 2 if your result isn't perfect. Not sure what the blank white spaces in your screenshot will do here. 
sLogin = Mid(sBody,lLoginPos,iLoginLength) ' grabs that username. 
With Sheets("Sheet1") 
    cells(1,3) = sLogin ' puts that into Row 1 Colum 3 (C) Cells is R1C1 ... backwards from the normal way you think of excel 
End With 

Verwenden Sie andere String-Variablen für alle anderen Teile, die Sie greifen wollen und wiederholen Sie einfach die Logik der Ausgangspunkt zu finden und Stelle endet und dann Mitte mit ihm in eine Variable zu setzen.

Geben Sie eine Aufnahme, die den Rest ausfüllt. Wenn Sie nicht weiterkommen, geben Sie Ihren Code bis zu diesem Punkt ein und teilen Sie uns mit, welche Zeile Ihnen Probleme bereitet. Vergessen Sie nicht, das lokale Fenster einzuschalten und mit der F8-Taste den Code Zeile für Zeile durchzugehen, damit Sie genau sehen können, was vor sich geht. Dies ist besonders nützlich bei String-Manipulationen.

+0

Vielen Dank. Ich werde es versuchen und lassen Sie wissen, wenn ich irgendwelche Probleme habe. –

+0

Nun, ich schätze den Code und ich folge dem, was vor sich geht, aber ich muss zugeben, dass ich genau keine Erfahrung mit VBA und Makroprogrammierung hatte, deshalb bin ich immer noch völlig festgefahren. Ich weiß, es ist wahrscheinlich nicht der Zweck dieses Forums, nach Code zu fragen, um etwas zu tun, und jemand tut es für dich, aber das ist im Wesentlichen, was ich brauche. Trotzdem danke für deine Hilfe, aber ich sollte wahrscheinlich zuerst die Grundlagen lernen, bevor ich eine solche Aufgabe angehen kann. –

+0

Sie hatten erwähnt, dass Sie einige andere Posts durchgesehen haben und sie nicht getan haben, was Sie brauchen. Tun sie einen Teil davon und Sie haben nur Schwierigkeiten, es zu ändern oder was haben Sie versucht? Das war eigentlich kein Wettkampf um das zu erreichen was du brauchst. Basierend auf deinen Posts dachte ich, du würdest den Text aus den E-Mails bereits erfolgreich in Excel schreiben und brauchst nur Hilfe, um die Fäden zu ziehen. Was hast du probiert? Wo bist du mit dem Projekt? – Rodger

Verwandte Themen