2012-04-10 17 views
-1

Ich versuche, die Antwortadresse von ausgehenden E-Mails basierend darauf festzulegen, ob eine bestimmte Adresse im Feld "An" oder "CC" der ausgehenden Nachricht ist. Ich bin so weit gekommen, nur um auf der Zeile "Set myCounter ..." auf "Object required" Fehler zu stolpern. Jede Hilfe wäre sehr dankbar:Outlook 2007 VBA Adresslisten

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

Haben Sie (mit Debugger) prüfen, ob beide 'oMyItem' und' oMyItem.Recipients' sind nicht null (nichts)? – Marco

+0

Ja, ich bin tatsächlich darüber hinweggekommen (direkt, als deine Antwort auftauchte), und jetzt habe ich ein separates Problem, das ich leicht genug lösen kann. Für diejenigen, die interessiert waren, löschte ich die Zeile, die myCounter deklarierte und änderte die for-Schleife in: Für i = 1 To oMyItem.Recipients.Count – dmolavi

Antwort

0

Ihr Fehler ist auf

Set myCounter = oMyItem.Recipients.Count 

weil VB verwendet Set ein Objekt (eine Klasse) zuweisen, während Sie eine ganze Zahl sind immer!
So könnte man es in verändern

Dim myCounter As Integer 

myCounter = oMyItem.Recipients.Count 
0

myCounter hat als Integer deklariert wurde, so gibt es keine Notwendigkeit für die Set ist.

ersetzen

Set myCounter = oMyItem.Recipients.Count 

mit

myCounter = oMyItem.Recipients.Count