如何从 Outlook 联系人中获取列中所列姓名的电子邮件地址?

coo*_*ter 4 email excel outlook vba

我是 VBA 新手,我需要帮助做一些事情:

如下图所示,我有一个名字列表。我想要做的是根据他们在 A 列中的姓名,从 Outlook 联系人列表(电子邮件地址分散在不同的联系人文件夹中)检索他们的电子邮件地址,并将它们粘贴到 B 列中。

或者,是否可以从 Outlook 联系人中获取每个姓名的电子邮件地址,并使用 Outlook 自动向他们发送电子邮件,以便我可以摆脱 B 列。

在此处输入图片说明

Mit*_*tch 5

此代码假定名称在 A 列中。它还假定您正在访问的地址簿的名称名为“联系人”,并且它们的格式与您的图表一致。

Option Explicit 
Private Sub GetAddresses() 
Dim o, AddressList, AddressEntry 
Dim c As Range, r As Range, AddressName As String 
Set o = CreateObject("Outlook.Application") 
Set AddressList = o.Session.AddressLists("Contacts") 
 'Change this range accordingly
Set r = Range("A1:A25") 
  For Each c In r 
    AddressName = c.Value 
    For Each AddressEntry In AddressList.AddressEntries 
        If AddressEntry.Name = AddressName Then 
            c.Offset(0, 1).Value = AddressEntry.Address 
            Exit For 
        End If 
    Next AddressEntry 
  Next c 
End Sub 
Run Code Online (Sandbox Code Playgroud)

如果地址在全局地址列表中,则在 Outlook 中,转到工具--> 通讯簿。然后使用下拉列表确定您的地址所在的列表。将代码中的“联系人”替换为存储地址的地址簿名称。

我没有写这个,我在 Ozgrid 上找到了它并修改了一些东西以适应你的情况。可能需要对您的应用程序进行一些调整。希望这有助于或让您朝着正确的方向前进。