2017-02-01 6 views
0

Ich habe einen einfachen Code, um eine E-Mail basierend auf Daten auf einem Benutzerformular zu generieren. Es hat sich auf mehreren Rechnern korrekt für eine lange Zeit gearbeitet, aber als ich Maschinen geändert begann es plötzlich einen Laufzeitfehler 13 Typenkonflikt wirft auf auf dem CreateItemFromTemplate Verfahren im folgenden Abschnitt:VBA Outlook CreateItemFromTemplate Typ stimmt nicht überein

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

Set EmailKRI = OutlookApp.CreateItemFromTemplate(PATH_EMAIL_TEMPLATE) 

Der Code ist immer noch läuft perfekt auf anderen Maschinen, was darauf hindeutet, dass das Problem lokal ist. Meine Outlook-Bibliothek ist die gleiche wie auf den anderen Computern, und der einzige Unterschied, den ich kenne, ist, dass ich es auf einem 64-Bit-System und einem 32-Bit-Büro verwende, während die meisten anderen 32-Bit-Systeme haben Andere hat die gleiche 64-Bit-Setup und läuft gut). Das Ändern der Objektdeklaration von Outlook.MailItem in Object scheint das Problem zu lösen, was Probleme mit dem programmatischen Zugriff von Outlook beseitigt, und in jedem Fall ist mein Antivirus-Status gültig. Aber ich bin immer noch verwirrt, warum ein solcher Fehler nur bei mir auftreten würde. Gibt es eine Lösung, so dass ich für dieses E-Mail-Objekt zur früheren Bindung zurückkehren kann?

Antwort

0

Sie erhalten diesen Fehler, wenn CreateItemFromTemplate etwas anderes als MailItem-Objekt zurückgibt. Sind Sie sicher, dass die OFT-Datei für eine normale Postsendung bestimmt ist? Als Test deklarieren Sie EmailKRI als generischen Obejct und überprüfen zur Laufzeit den Wert der Eigenschaft EmailKRI.Class. Es sollte 43 (OlObjectClass.olMail) für die regulären MailItem-Objekte sein.

+0

Ja, ich hatte diesen Test gemacht, und EmailKRI gibt den Typ Object/MailItem zurück, .class ist olMail. –

+0

Ich kann nur vorschlagen, dass es ein Problem mit der Outlook-Typbibliothek zur Laufzeit gibt ... –