我正在开发一个项目,我需要从邮件正文中获取ms access
表/数据并在SAP
中执行一些命令。我可以管理SAP部分,但问题是如何从邮件正文中获取信息。我尝试在访问中链接我的邮箱,但它显示我所有的邮件正文,但我只需要一些指定的内容。例
Hello,
Please supplement budget
WBS Amt
N.10002077.001 1
从上面我需要的只是“N.10002077.001”和“1”,但如何只在表中获取该信息是问题?
此外,我将在邮件中获得的内容将是包含2列的表格,但访问权限将其作为简单文本导入。
你不可能对你的问题给出一个明确的答案,因为它太模糊,但有可能让你开始。
看看我的这个答案:https://stackoverflow.com/a/12146315/973283。这个问题没有关系,除了OP不明白显示屏幕截图告诉我们关于VBA宏的身体看起来很少。答案包括一个宏,它将收件箱中每个电子邮件中的选定属性复制到Excel工作表。这将允许您查看电子邮件正文对VBA宏的影响。
您如何识别要从中提取数据的电子邮件?两个简单的选择是:
上面提到的答案演示了技术1.有很多答案展示了技术2但我可以在必要时添加一个示例宏。
电子邮件通常具有Html正文和文本正文。如果电子邮件具有Html正文,则向用户显示该正文。宏可以访问其中一个或两个。您的屏幕截图看起来像文本正文,虽然外观可能具有欺骗性。如果是文本正文,则电子邮件没有Html正文。
如果是文本正文,则正文的布局可能类似于:
Hello,{cr}{lf}
Please supplement budget{cr}{lf}
WBS{tab}{tab}{tab}{tab}{tab}Amt{cr}{lf}
N.10002077.001{tab}{tab}1{cr}{lf}
这假定,发件人使用了可变数量的选项卡来排列列。
您可以在Split
上使用vbCr & vbLf
将字符串体转换为字符串数组,每个数组条目一行。丢弃直到并包括从“WBS”开始的行的行,然后将每行处理为任何签名。 Split
在vbTab
上的每一行,并期望找到两个带有值的条目,其余为空白。
如果您需要更多信息,请查看上述提示您可以获得多少,然后澄清您的答案。