收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免姓名拼写错误。
我使用姓名和姓氏管理,但我无法提取并仅显示名字。
以下是代码:
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 :(得分:1)
为什么你认为有名字和姓氏?你得到的只是一个显示名称 - 它可以只是电子邮件地址,也可以是发件人想要显示的任何内容。您当然可以自由地解析显示名称,假设它的格式为“#34; first last"或者"最后,第一个"。或者"第一个中间的最后一个"。或任何其他格式。
如果是Exchange发件人,您当然可以从AddressEntry
检索MailItem.Sender
对象,并检查AddressEntry.GetExchangeUser
是否为空。如果您有有效对象,则可以使用ExchangeUser.FirstName
和ExchangeUser.LastName
。
答案 1 :(得分:0)
只需替换此行:
Dim tekst$: tekst = "Hi " & Split(objItem2.SenderName)(0) & "," & vbNewLine & vbNewLine