2012-04-10 94 views
-1

我試圖根據出站郵件的「收件人」或「抄送」字段中是否包含特定地址來設置出站電子郵件的回覆地址。我已經得到了這麼多,只是在「Set myCounter ...」行中偶然發現「Object required」錯誤。任何援助將不勝感激:Outlook 2007 VBA地址列表

Option Explicit 

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
Dim oMyItem As Outlook.MailItem 
Dim i As Integer 
Dim AddressEntry As AddressEntry 
Dim myCounter As Integer 
Set oMyItem = Item 
Set myCounter = oMyItem.Recipients.Count 

For i = 1 To myCounter 
    Set AddressEntry = oMyItem.Recipients(i).AddressEntry 
    If (AddressEntry = "[email protected]") Then 
     oMyItem.ReplyRecipients.Add "[email protected]" 
    End If 
Next i 
End Sub 
+0

你檢查(使用調試器),這兩個'oMyItem'和'oMyItem.Recipients'不爲空(什麼)? – Marco 2012-04-10 14:47:36

+0

是的,我實際上已經過去了(當你的答案出現時),現在有一個單獨的問題,我可以很容易地解決。對於那些感興趣的,我刪除了聲明myCounter的行,並將for循環更改爲:For i = 1 To oMyItem.Recipients.Count – dmolavi 2012-04-10 14:52:44

回答

0

你的錯誤是在

Set myCounter = oMyItem.Recipients.Count 

因爲VB使用Set分配對象(類),而你得到的整數!
所以,你可以把它變成

Dim myCounter As Integer 

myCounter = oMyItem.Recipients.Count 
0

myCounter已被宣佈爲一個整數,所以沒有必要爲Set

更換

Set myCounter = oMyItem.Recipients.Count 

myCounter = oMyItem.Recipients.Count