2013-02-01 96 views
1

我正在構建一個宏,當我移動到電子郵件正文中時,它會自動運行以檢查收件人的電子郵件地址。收件人的回覆電子郵件地址

我無法獲得收件人的地址加載到變量。

Sub BuildTable() 
Dim myItem As Outlook.MailItem 
Dim myRecipient As String 
Set myItem = Application.CreateItem(olMailItem) 
Set myRecipient = myItem.Recipient.Address 
.... 

回答

0

看來你在MS Outlook和在Active督察運行,因此可能:

Sub CheckAddresses() 
Dim oEmail As Outlook.MailItem 
Dim r As Recipient 
Dim rList As Recipients 

Set oEmail = Application.ActiveInspector.CurrentItem 

Set rList = oEmail.Recipients 
rList.ResolveAll 
For Each r In rList 
    Debug.Print r.Address 
Next 
End Sub 
+0

非常感謝,也。我得到了這個方法,以及輕微的重新調整。 – GZL

0

我不知道你使用的是什麼版本的Outlook,但據微軟(http://msdn.microsoft.com/en-us/library/office/aa211006(v=office.11).aspx),你需要使用.Recipients(指數)來獲取收件人。從那裏你可能可以得到地址。我還看到提到某種ResolveAll方法附加到.Recipients,但引用了Outlook 2000(eww)。

嘗試做

Dim myItem As Outlook.MailItem 
Dim myRecipient as String 
Set myItem = Application.CreateItem(olMailItem) 
Set myRecipient = myItem.Recipients.Item(0).Address 

這會給你第一個收件人(請注意我不記得,如果VBA開始於指數0或1,如果你得到IndexOutOfRange,更改爲1)的地址。如果你需要別人,你將需要做一個循環。這樣的事情:

For Each Recipient in myItem.Recipients 
// do some stuff here 
Next Recipient 

希望這會有所幫助。

+0

感謝您的快速回復。我正在使用2010. 我認爲引起我的是他們指示我創建一個新項目,而不是簡單地訪問mailitem中的值。我只是在這一點上失去了如何獲得這些值(對不起,我真的只涉足Coldfusion/SQL Server)。 我很感激幫助。 -ZL – GZL

+0

我不使用Outlook for VBA,只使用Excel。堅持下去,我會盡力爲你解決。 –

+0

非常感謝您的幫助,我將其付諸實施。我感謝你的時間和關注。 – GZL

0

這就是這個代碼段結束看起來像:

Sub BuildTable1() 

Dim oEmail As Outlook.MailItem 

Set oEmail = Application.ActiveInspector.currentItem 

Set xlApp = CreateObject("Excel.Application") 
xlApp.Application.Visible = True 
xlApp.workbooks.Open FileName:= file location 

xlApp.WorkSheets("Contacts").Activate 
xlApp.Range("A6").Value = oEmail.To 


//filtering by value, copying, pasting, etc. 
End Sub 

-ZL

相關問題