我是VBA的新手,我需要帮助做一些事情:
如下图所示,我有一个名单。我想要做的是根据他们在A列中的名字,从Outlook联系人列表中检索他们的电子邮件地址(电子邮件地址分散在不同的联系人文件夹中)并将其粘贴到B列中。
或者,是否可以从Outlook联系人那里获取电子邮件地址,为每个名称自动发送电子邮件给Outlook,以便我可以删除B列。
答案 0 :(得分:3)
此代码假定名称位于A列中。它还假设您正在使用的地址簿名称被命名为“Contacts”,并且它们根据您的图表进行格式化。
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找到它并修改了一些适合你情况的东西。您的应用程序可能需要稍微调整一下。希望这有助于或帮助您朝着正确的方向前进。
答案 1 :(得分:-1)
您应该能够只导入所有联系人,而无需任何VBA代码。这是一个描述如何操作的链接。
https://www.ablebits.com/office-addins-blog/2014/06/12/import-contacts-excel-outlook/
https://www.extendoffice.com/documents/outlook/1116-outlook-export-contact-to-excel.html
您可能也有兴趣加入GAL。看看下面的链接。