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

4

我刚开始学习VBA,需要帮助做一些事情:

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

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

enter image description here


这一切都是可能的。但是为了在这里获得帮助,您需要展示自己的努力。从某个地方开始编写代码,这样您就可以声称“卡住了”,然后有人会帮助您前进一两步。 - Variatus
2个回答

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 

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

我没有写这个,我在Ozgrid上找到它,并修改了一些内容以适应你的情况。可能需要进行一些微调才能适用于您的应用程序。希望这可以帮助您或引导您朝正确的方向发展。


-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接