从GetAddress方法中分离多个选定的地址

时间:2016-08-01 11:39:52

标签: vba word-vba

这确实是一个简单的问题 但我很难解决它。

背景

我尝试使用.GetAddress Word.Application对象方法获取电子邮件地址 现在,如果用户选择单个ToCC收件人,我就不会遇到问题。
当用户选择多个电子邮件时会出现问题 例如,用户选择两个电子邮件地址和一个组列表。

rawRecip = Application.GetAddress(, "<PR_DISPLAY_NAME>", , 1, 2, True)
Debug.Print rawRecip

使用上面的代码会产生:

Smith, John, Joe, Jane, All-HQ Group

所选的每个地址都以<comma><space>分隔 问题是SurNameGivenName也是相同的 现在我需要成功获取用户选择的3地址的显示名称 Split函数无法将我带到任何地方,因为我无法找到或生成将3显示名称分开的唯一分隔符。

有没有一种干净的方式来获得我想要的东西?

Smith, John
Joe, Jane
All-HQ Group

1 个答案:

答案 0 :(得分:0)

原谅。答案已经在我面前了。
将此作为答案发布,万一有人需要它 您只需在GetAddress方法中添加另一个字符。

修改使用其他空格字符可获得最佳效果

rawRecip = Application.GetAddress(, "<PR_DISPLAY_NAME>" & " ", , 1, 2, True)

它会产生:

Smith, John , Joe, Jane , All-HQ Group 

然后您可以使用Split函数和一些文本操作来获得所需的结果。

Dim i As Integer, dName
dName = Split(rawRecip, " , ")
For i = LBound(dName) To UBound(dName)
    Debug.Print dName(i)
Next

结果:

Smith, John
Joe, Jane
All-HQ Group

注意:最后一个条目有额外空格