2017-08-05 116 views
2

我是新来的VBA,我需要帮助做些事情:如何从Outlook联系人中获取列中列出的姓名的电子邮件地址?

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

或者,是可能获得从Outlook联系人的电子邮件地址,每个名称和Outlook会自动发送一封电子邮件给他们,让我可以摆脱塔B的

enter image description here

+0

这一切都有可能。但要获得这里的帮助,您需要展示自己的努力。在某个地方启动你的代码,这样你就可以声称会“卡住”,有人会帮你进一步去做一两步。 – Variatus

回答

2

此代码假定的名字都在列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中转至工具 - >地址簿。然后使用下拉列表来标识您的地址列表。用代码中的“联系人”替换地址簿中存储的地址簿的名称。

我没有写这个,我发现它在Ozgrid并修改了几件事情以适应您的情况。它可能需要调整你的应用程序。希望这会有所帮助或让你朝着正确的方向前进。

相关问题