2015-12-02 23 views
0

收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免名称错别字。提取发件人的名字

我管理的名称和姓氏,但我不能提取和显示名字只。

下面是代码:

Sub Dodanie_imienia() 
On Error GoTo brak_aktywnego 
Dim objItem As MailItem: Set objItem = Application.ActiveExplorer.Selection.Item(1) 
On Error GoTo 0 
Dim objInsp As Outlook.Inspector: Set objInsp = objItem.GetInspector 
Dim objDoc As Object: Set objDoc = objInsp.WordEditor 'Word.Document 
Dim objWord As Object: Set objWord = objDoc.Application 'Word.Application 
Dim objSel As Object: Set objSel = objWord.Selection 'Word.Selection 
Dim objItem2 As Object: Set objItem2 = Application.ActiveExplorer.Selection.Item(1) 
Dim tekst$: tekst = "Hi " & objItem2.SenderName & "," & vbNewLine & vbNewLine 

objSel.TypeText tekst 

Exit Sub 
brak_aktywnego: 
If Err.Number = 91 Then _ 
MsgBox "Utwórz wiadomość do edycji.", vbExclamation, "LB" Else _ 
MsgBox Err.Number & " " & Err.Description, vbExclamation, "LB" 
End Sub 

回答

0

只需更换这行:

Dim tekst$: tekst = "Hi " & Split(objItem2.SenderName)(0) & "," & vbNewLine & vbNewLine 
0

为什么你假设有一个姓氏和名字?您所得到的只是一个显示名称 - 它可以只是电子邮件地址,或者是发件人想要显示的任何内容。您当然可以自由解析显示名称,前提是它将采用“first last”或“last first”格式。或“第一中间最后”。或者任何其他格式。

如果是Exchange发件人,您当然可以从MailItem.Sender中检索AddressEntry对象,并检查AddressEntry.GetExchangeUser是否不为空。如果你有一个有效的对象,你可以使用ExchangeUser.FirstNameExchangeUser.LastName