我正在使用以下代码从我的电子邮件正文中检索公司名称。所以,例如,如果我有
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
答案 0 :(得分:0)
您可能想要检查对象/项目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