2016-06-10 240 views
1

有幾個帖子在這個主題上打開,但是沒有一篇似乎完全滿足我的需要。我做了一些編程,但是我從來沒有用VBA做過任何事情。每天我收到一系列包含以[Tk#*******]新請求(* = 7位數字) 開頭的主題行的一系列電子郵件,其中包含以10到50爲單位的所有電子郵件。然後在正文內部有一個表單看起來像這樣:VBA Outlook 2010.將特定的Outlook正文文本提取爲excel

Body Text

我然後有一個Excel片設置在「G」中「C」「用戶名」,「公司」,「有效的,直到」在「H」和「票務'在'我'。我想首先從主題中提取7位數的票號,並​​將其放入excel的'Ticket'字段中,然後從登錄字段中將'smithjoh'部分放入'用戶名'中,然後將外部公司列爲'公司',最後到期日爲'有效期至'。

首先,我想知道是否可以這樣做,因爲它是提取數據的特定部分,如果有的話,如果有人可以幫助我做這個工作,最受讚賞。我試圖自己做,但缺乏經驗讓我無能爲力,不幸的是沒有什麼可以工作的。如果這可以做出來,它會幫助我很多,因爲它會自動完成一項非常乏味的手動任務。

謝謝, 馬克

+0

從TK開始?從風暴戰士獲取電子郵件?你有沒有嘗試過的東西,可以在這裏發佈?這通常是最好的,因爲有很多方法去皮膚貓。如果您嘗試過並失敗了,可能需要快速編輯才能使其正常工作。 – Rodger

+0

到目前爲止,我所嘗試過的所有工作都是複製文本的全部內容。我在網上看了一下,試圖找到一種方法來只抓住特定的文本,但是實際上並沒有任何關於它的東西。我真的不知道該從哪裏開始,對不起。 Tk表示票證,它是一個自動票證號碼:P –

+1

對於特定文本,您可以使用正則表達式,或者Instr和Mid的組合,或者甚至是Split。這還取決於身體或你的電子郵件是純文本還是表格。您應該提供代碼並指出您遇到的問題。 –

回答

0

好吧,如果你抓住了身體和標題沒有問題,那麼你只需要做的字符串操作。將它們分別讀入一個變量。假設你的主題是litterally「TK#*******新請求」,那麼這應該讓你開始。基本上重複你想要拉出的每個部分的邏輯。一旦你有變量的值,你可以把這些值放入單元格中。

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 

使用其他字符串變量所有你要搶,只是重複尋找起點和結束的地方,然後,使用中間把它變成一個變量的邏輯的其他部分。

給它一個填補其餘的問題,如果你卡住了,發佈你的代碼到那一點,讓我們知道什麼線路給你帶來麻煩。 不要忘記打開你的本地窗口,並使用你的F8鍵一次一行地瀏覽代碼,以便你可以看到到底發生了什麼。這對字符串操作特別有用。

+0

非常感謝。如果我有任何問題,我會放棄並告訴你。 –

+0

嗯,我很欣賞代碼,我遵循的是怎麼回事,但是我不得不承認,在VBA和宏編程之前,我完全沒有經驗,因此我仍然完全停滯不前。我意識到,這個論壇的目的可能不是要求代碼做某件事,而有人爲你做,但這基本上就是我所要求的。無論如何,感謝您的幫助,但我應該在解決此類任務之前先去學習基礎知識。 –

+0

你剛纔提到你已經經歷了其他一些帖子,他們沒有做你所需要的。他們做它的一部分,你只是無法修改它,或者你嘗試過什麼?這實際上並不是一個完全符合你的需求的Sub Sub。根據你的帖子,我以爲你已經成功地將電子郵件中的文本拖入excel中,並且只需要幫助將字符串從中提取出來。你有什麼嘗試?你在哪裏與該項目? – Rodger