我正在嘗試在電子郵件正文中查找某些單詞的位置(嗨,你好,早上好,親切的問候)并獲取電子郵件的一部分。對于收到的 70% 的電子郵件,它可以正常作業,但對于某些電子郵件,它無法識別這些單詞。如果我手動將電子郵件轉發給我,然后進行搜索,它會找到它們,但如果我通過宏將其轉發給我,問題仍然存在。
Sub Display()
Dim oApp As Outlook.Application
Dim objFolder As Outlook.MAPIFolder
Set oApp = New Outlook.Application
Set objNS = Application.GetNamespace("MAPI")
Set objFolder = objNS.GetDefaultFolder(olFolderInbox)
Dim pos1 As Long
Dim pos2 As Long
Dim pos3 As Long
Dim pos4 As Long
Dim pos5 As Long
Dim msg As Outlook.MailItem
For Each objItem In Application.ActiveExplorer.Selection
Set msg = objItem.Forward
msg.HTMLBody = objItem.HTMLBody
msg.Subject = ("Test")
pos1 = InStr(msg.HTMLBody, "Hi,")
MsgBox ("pos1 " & pos1)
pos2 = InStr(msg.HTMLBody, "Hello")
MsgBox ("pos2 " & pos2)
pos3 = InStr(msg.HTMLBody, "Good morning")
MsgBox ("pos3 " & pos3)
pos4 = InStr(msg.HTMLBody, "Kind regards")
MsgBox ("pos4 " & pos4)
If pos5 = 0 Then
msg.To = "[email protected]"
msg.Recipients.ResolveAll
'msg.Send
msg.Display
Exit Sub
End If
If pos1 = 0 And pos2 = 0 And pos3 = 0 Then
msg.To = "[email protected]"
msg.Recipients.ResolveAll
'msg.Send
msg.Display
Exit Sub
End If
If Not pos1 = 0 Then
If Not pos4 = 0 Then
msg.HTMLBody = Mid(msg.HTMLBody, pos1, pos4 - pos1 Len("Kind regards"))
End If
ElseIf Not pos2 = 0 Then
If Not pos4 = 0 Then
msg.HTMLBody = Mid(msg.HTMLBody, pos2, pos4 - pos2 Len("Kind regards"))
End If
ElseIf Not pos3 = 0 Then
If Not pos4 = 0 Then
msg.HTMLBody = Mid(msg.HTMLBody, pos3, pos4 - pos3 Len("Kind regards"))
End If
End If
msg.Display
Next
End Sub
uj5u.com熱心網友回復:
在 Outlook 中轉發專案時無需重新分配郵件正文。當您手動執行此操作時,不會執行以下操作:
msg.HTMLBody = objItem.HTMLBody
僅供參考 Outlook 物件模型提供了三種使用專案主體的主要方法:
- 身體。
- HTML 正文。
- Word 編輯器。Inspector 類的WordEditor屬性回傳代表訊息正文的 Word 檔案實體。
有關詳細資訊,請參閱第 17 章:使用專案物體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/439636.html
