我正在從一些tutorial on MSDN開始學習爲Outlook製作一些宏。我有這個掛起Type mismatch
錯誤的子程序。在Stop
和Resume
之後逐步完成錯誤處理後,它將返回Next
並完成查詢。Outlook聯繫人項目查詢掛起的Outlook分配列表
通過立即查看結果集,一個項目丟失,這實際上是一個分發郵件列表,而不是一個正常的聯繫人。我將郵件列表從我的聯繫人中移出以進行測試,但錯誤未發生。
我的計劃還有其他郵件列表,因爲這是爲了工作。是否有一種解決方法,像某種方式來逃避它,除了將它們保存在其他地方?
下面是代碼:
Sub ContactName()
On Error GoTo ErrHandler
Dim ContactsFolder As Folder
Set ContactsFolder = Session.GetDefaultFolder(olFolderContacts)
MsgBox ("Contacts found: " & ContactsFolder.Items.Count)
Dim Contact As ContactItem
For Each Contact In ContactsFolder.Items
Debug.Print Contact.CompanyName
Next
Exit Sub
ErrHandler:
Debug.Print Err.Description
Stop
Resume
End Sub
我猜'郵件列表項不是'聯繫人',因此'對於ContactsFolder.Items中的每個聯繫人'將失敗,因爲不能轉換爲'Contact'。另一種選擇是使用「FOR」循環而不是「FOR EACH」。然後,你應該能夠遍歷'Items'並且測試你擁有什麼類型的物品並且在訪問它的屬性之前進行相應的投射。 – DeanOC 2014-11-20 22:57:12
似乎沒有工作,或者我不知道如何用'FOR'循環(這裏是裸機新手)編寫它,但是如果您能夠使用聯繫人列表中的郵件列表在您的機器上測試併發布工作代碼,我會很樂意接受你的答案。 – Phrancis 2014-11-20 23:04:33