Vba 提取发件人的名字
收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免姓名输入错误 我用名字和姓氏进行了管理,但我不能只提取和显示名字 代码如下:Vba 提取发件人的名字,vba,outlook,Vba,Outlook,收到电子邮件后,我想将发件人的名字提取到电子邮件正文中,以避免姓名输入错误 我用名字和姓氏进行了管理,但我不能只提取和显示名字 代码如下: 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.Inspec
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
只需更换这一行:
Dim tekst$: tekst = "Hi " & Split(objItem2.SenderName)(0) & "," & vbNewLine & vbNewLine
为什么你认为有名字和姓氏?你得到的只是一个显示名——它可以是电子邮件地址,也可以是发件人想要显示的任何内容。当然,您可以自由解析显示名称,假设它的格式为“first-last”或“last,first”。或“第一中间最后”。或任何其他格式
对于Exchange发件人,您当然可以从
MailItem.sender
检索AddressEntry
对象,并检查AddressEntry.GetExchangeUser
是否为空。如果您有有效的对象,可以使用ExchangeUser.FirstName
和ExchangeUser.LastName
谢谢,下面的代码行为exchange用户获取了我的名字:Application.ActiveExplorer.Selection.Item(1).Sender.getexchangeuser.FirstName如果回答您的问题,请这样标记。完成…很抱歉,此路径上的访客不多,错过了:P