2017-08-05 129 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並修改了幾件事情以適應您的情況。它可能需要調整你的應用程序。希望這會有所幫助或讓你朝着正確的方向前進。

相關問題