2015-10-24 3 views
0

Я хочу, чтобы обработчик ошибок всякий раз, когда я получаю сообщение об ошибке «Не удается найти проект или библиотеку», вы деактивируете ссылку на «C: \ Program Files \ Microsoft Offfice \ Office15 \ MSOUTL.OLB».Обработка ошибок «Не удается найти проект или библиотеку»

Я не уверен, как это сделать, поэтому еще нет кода.

EDIT: я хочу, чтобы код работал на любом компьютере (с и без офиса Microsoft), так что без меня вручную снятие/установка флажка в Инструменты> Ссылки.

+3

Попробуйте использовать позднюю привязку. См. [Здесь] (http://superuser.com/questions/615463/how-to-avoid-references-in-vba-early-binding-vs-late-binding) или [здесь] (поддержка https: //. microsoft.com/en-us/kb/245115) – vacip

+0

@vacip Я пробовал этот метод, но, похоже, я не работал для меня. – Iluvpresident

ответ

0

ОК, тогда вам нужно забыть о Outlook. (С или БЕЗ Microsoft Office означает, что ваш код не может зависеть от Outlook.) Я просто хочу дать вам еще одну ссылку, посмотрите на него: rondebruin.nl/win/s1/cdo.htm

CDO занимает несколько попыток, чтобы выяснить, и вам нужно знать специфику почтового ящика, который вы используете для отправки письма. (Как и в настройках SMTP и т.д.)

О коде:

Set deMail = deApp.createitem(deMailItem) 

deMailItem не имеет смысла, она должна быть постоянной, olMailItem. Но если вы используете позднюю привязку, вы не можете использовать константы из пространства имен Outlook. Вместо этого используйте 0, а olMailItem = 0.

Set deMail = deApp.createitem(0) 

Кроме того, видимое = истинное не существует ни для Outlook, ни для элементов почты. Если вы хотите отобразить почтовый адрес, используйте:

deMail.Display 

О, и еще одно. Вы должны проверить, работает ли Outlook, и если он уже есть, его не следует перезапускать, просто используйте существующую программу. См. here.

Надеюсь, это поможет!

Смежные вопросы