繁体   English   中英

使用 vba 从 Outlook 电子邮件正文中获取某些文本?

[英]get certain text from outlook email body using vba?

我正在使用以下代码从我的电子邮件正文中检索公司名称。 所以例如如果我有

Company name: Hewden

然后我想要'Hewden'

在我的电子邮件正文中的公司名称下方,我还有以下内容:

company number: 123
company status: live

kind regards,

automated email

我正在使用以下代码尝试仅检索公司名称“Hewden”,而没有任何前后文本。

我在b4 = olkmsgt.Body行上收到无效的过程调用或参数错误

并且不知道为什么,有人可以告诉我如何修改它以使其达到我想要的效果。

谢谢

Dim b4 As String
                        b4 = olkMsg.Body

    Dim indexOfNameb As Integer
        indexOfNameb = InStr(1, b4, "Company Name: ")

    Dim indexOfNamec As Integer
        indexOfNamec = InStr(1, b4, "Company number: ")

    Dim finalStringb As String

        finalStringb = Mid(b4, indexOfNameb, indexOfNamec - indexOfNameb)
        Dim LResult36 As String
        LResult36 = Replace(finalStringb, "Company Name: ", "")

       excWks4.Cells(intRow4, 1) = LResult36

您可能想要检查对象/项目 olkMsg 是否为 Outlook MailItem。 它可能是没有正文属性的邀请、任务等。

if TypeName(olkMsg) = "MailItem" then
b4 = olkMsg.Body
...

编辑(回答评论): InStr() 区分大小写。 “公司名称:”不是“公司名称:”尝试将所有字符串放入UCases以摆脱大小写敏感:

If TypeName(olkMsg) = "MailItem" Then
    b4 = olkMsg.Body

    Dim indexOfNameb As Integer
        indexOfNameb = InStr(UCase(b4), UCase("Company name: "))

    Dim indexOfNamec As Integer
        indexOfNamec = InStr(UCase(b4), UCase("Company number: "))

    Dim finalStringb As String

        finalStringb = Mid(b4, indexOfNameb, indexOfNamec - indexOfNameb)
        Dim LResult36 As String
        LResult36 = Replace(finalStringb, "Company Name: ", "")

       excWks4.Cells(intRow4, 1) = LResult36
End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM