2017-02-01 54 views
0

我有一個簡單的代碼來生成基於用戶表單上的數據的電子郵件。它工作正常跨多臺機器很長一段時間,但是當我改變了機器突然開始在下一節上CreateItemFromTemplate方法上拋出一個運行時錯誤13類型不匹配:VBA Outlook CreateItemFromTemplate類型不匹配

Private Sub AcaoEnviar_Click() 
Dim OutlookApp As New Outlook.Application 
Dim EmailKRI As Outlook.MailItem 

Set EmailKRI = OutlookApp.CreateItemFromTemplate(PATH_EMAIL_TEMPLATE) 

的代碼仍然是在其他機器上完美運行,表明問題是局部的。我的Outlook庫與其他機器上的相同,唯一區別是我意識到我在64位系統和32位辦公室運行它,而其他大多數系統都有32位系統(一個其他的具有相同的64位設置並運行良好)。 將對象聲明從Outlook.MailItem更改爲Object似乎解決了問題,我認爲這樣可以消除Outlook的編程訪問問題,並且無論如何,我的防病毒狀態都是有效的。 但我仍然困惑,爲什麼這樣的錯誤只會發生在我身上。 有沒有解決方案,以便我可以回到早期綁定該電子郵件對象?

回答

0

如果CreateItemFromTemplate返回除MailItem對象之外的其他東西,將會出現該錯誤。你確定OFT文件是用於一般郵件的嗎? 作爲測試,將EmailKRI聲明爲通用Obejct,並在運行時檢查EmailKRI.Class屬性的值。對於常規MailItem對象,它應該是43(OlObjectClass.olMail)。

+0

是的,我做了那個測試,EmailKRI返回的是Object/MailItem類,.class是olMail。 –

+0

我只能建議在運行時Outlook類型庫存在問題... –