我正在嘗試使用Outlook全局地址列表查找某個人的電子郵件地址。這是我用來做的VBA代碼。全局地址列表查找中的自動化錯誤
'Snip
If firstName <> "" Then
Dim o, AddressList, AddressEntry
Dim AddressName, Address, Address2 As String
Set o = CreateObject("Outlook.Application")
Set AddressList = o.Session.AddressLists("Global Address List")
AddressName = firstName
For Each AddressEntry In AddressList.AddressEntries
If AddressEntry.Name = AddressName Then
Address = AddressEntry.GetExchangeUser.PrimarySmtpAddress
Exit For
End If
Next AddressEntry
End If
'Snip
變量「firstName」的格式爲姓氏,名字。這似乎只有一半的時間,我嘗試使用它。例如,如果我把自己的名字放進去,每次都工作得很好,但是如果我放入同事的名字,我會從Outlook中看到一些泡泡,說「Outlook試圖從Microsoft Exchange Server * .com中檢索數據「然後我得到一個自動化錯誤。我找不到那些不起作用的名稱和那些相同的名稱之間的共同之處。任何幫助將非常感激。
編輯:我只是想到的另一個說明是,當我打錯誤窗口上的調試它突出顯示「下一個AddressEntry」行。
是'firstName'應該是某人的第一個名字還是人名列表中的第一個名字?通常,它指的是一個人的「給定」或「基督徒」的名字。 _命名事物很難_ – FreeMan
有可能是一個'AddressList.AddressEntries.Count'或類似的東西 - 檢查你的計數,以確保你獲得的不僅僅是你自己。另外,Address2是String,AddressName和Address是Variant。 – FreeMan
@FreeMan對於混淆感到抱歉,我有另一個名爲secondName的變量,它第二次搜索地址列表,所以兩個變量都保持不同的完整名稱(例如Doe,Jane)。我也嘗試了其他的名字,而不是我自己的,還有一些做了工作我只是以自己爲例。我也嘗試將地址名稱和地址更改爲字符串,但這沒有什麼區別。地址2用於代碼的下一部分。 – wgray