此代码假定名称在 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 上找到了它并修改了一些东西以适应你的情况。可能需要对您的应用程序进行一些调整。希望这有助于或让您朝着正确的方向前进。