0
我有一個Outlook的vba腳本,它讀取關鍵字的電子郵件並將其輸出到csv文件。該腳本的作用是查找電子郵件是否直接發給我,但如果腳本是來自朋友的轉發郵件,則腳本會中斷。任何幫助表示讚賞編輯腳本才能正常運行,當它被轉發Outlook vba開發者從轉發郵件中閱讀郵件正文
Public Sub EidInfo(Item As Outlook.MailItem)
Dim CurrentMessage As MailItem
Dim MsgBody As String
Dim SearchPos As String
Dim SearchMsg(11) As String
Dim SearchStr(11) As String
Dim StartPos As Integer
Dim EndPos As Integer
Dim LineMsg As String
Set CurrentMessage = Item
MsgBody = CurrentMessage.HTMLBody
SearchStr(1) = "Requester "
SearchStr(2) = "Flight "
SearchStr(3) = "Request Type:-"
SearchStr(4) = "Summary : "
SearchStr(5) = "Description : "
SearchStr(6) = "Reason : "
SearchStr(7) = "Number : "
SearchStr(8) = "From Date : "
SearchStr(9) = "To Date : "
SearchStr(10) = "Number of Days : "
SearchStr(11) = "Country : "
EndPos = 1
For i = 1 To 11
StartPos = InStr(EndPos, MsgBody, SearchStr(i), vbTextCompare) + Len(SearchStr(i))
If i = 1 Then
EndPos = StartPos + 15
ElseIf i = 2 Then
EndPos = InStr(StartPos, MsgBody, ".", vbTextCompare)
ElseIf i = 11 Then
EndPos = InStr(StartPos, MsgBody, "<BR>", vbTextCompare)
Else
EndPos = InStr(StartPos, MsgBody, "<BR>" + SearchStr(i + 1), vbTextCompare)
End If
SearchMsg(i) = Mid(MsgBody, StartPos, EndPos - StartPos)
SearchMsg(i) = Replace(SearchMsg(i), "<BR>", " ")
SearchMsg(i) = Replace(SearchMsg(i), ",", ".")
Next i
If Dir("D:\EidFile.csv") = "" Then
Open "D:\EidFile.csv" For Output As #1
LineMsg = "Request Time,"
For i = 1 To 11
LineMsg = LineMsg + Replace(SearchStr(i), ":", " ")
If i < 11 Then LineMsg = LineMsg + ","
Next i
Print #1, LineMsg
LineMsg = ""
Else
Open "D:\EidFile.csv" For Append As #1
End If
LineMsg = CurrentMessage.ReceivedTime
LineMsg = LineMsg + ","
For i = 1 To 11
LineMsg = LineMsg + SearchMsg(i)
If i < 11 Then LineMsg = LineMsg + ","
Next i
Print #1, LineMsg
Close #1
末次
當你運行腳本?你可以再詳細一點嗎?您是否嘗試手動對腳本運行腳本時調試代碼? – 2015-02-08 16:24:48