2014-06-20 7 views
7

मैक इनबॉक्स के माध्यम से लूप करने के लिए Outlook VBA का उपयोग करने का प्रयास कर रहा है और यदि विषय स्ट्रिंग से मेल खाता है तो ईमेल पते से सूचीबद्ध करें। इस अब तक googling से मिल गया है, लेकिन यह काम नहीं कर रहा:आउटलुक वीबीए ईमेल ईमेल पते से इनबॉक्स और सूची से कैसे लूप करें यदि विषय

Dim objNS As Outlook.NameSpace 
Set objNS = GetNamespace("MAPI") 
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 

Dim oFolder As Outlook.MAPIFolder 
Dim oMail As Outlook.MailItem 
For Each oMail In Items 
    Debug.Print oMail.SenderEmailAddress 
Next 

किसी को पता है जब मैं इस चलाने के कारण है कि मैं एक प्रकार बेमेल त्रुटि मिलती है?

+0

कौन सी रेखा मिस्त्री लौटाती है ATCH? बीटीडब्ल्यू, याद रखें कि इनबॉक्स में सभी आइटम 'MailItem' प्रकार के नहीं हैं। यदि ऐसा है, तो यह आपके 'प्रत्येक लूप के लिए' में एक विसंगति त्रुटि को ट्रिगर करेगा। – L42

उत्तर

12

के रूप में टिप्पणी की, के लिए एक परीक्षण शामिल MailItem अपने कोड में प्रयास करें:

Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI") 
Dim olFolder As Outlook.MAPIFolder 
Set olFolder = objNS.GetDefaultFolder(olFolderInbox) 
Dim Item As Object 

For Each Item In olFolder.Items 
    If TypeOf Item Is Outlook.MailItem Then 
     Dim oMail As Outlook.MailItem: Set oMail = Item 
     Debug.Print oMail.SenderEmailAddress 
    End If 
Next 

Edit1:, दिमित्री ने सुझाव दिया के रूप में आप भी उपयोग कर सकते हैं:

If Item.Class = 43 Then 

के स्थान पर

If TypeOf Item Is Outlook.MailItem Then 
संबंधित मुद्दे