Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 提取发件人的名字_Vba_Outlook - Fatal编程技术网

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