VBA Outlook 2010.将特定的Outlook正文文本提取为excel

问题描述:

有几个帖子在这个主题上打开,但是没有一篇似乎完全满足我的需要。我做了一些编程,但是我从来没有用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。这还取决于身体或你的电子邮件是纯文本还是表格。您应该提供代码并指出您遇到的问题。 –

好吧,如果你抓住了身体和标题没有问题,那么你只需要做的字符串操作。将它们分别读入一个变量。假设你的主题是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