VBA ссылка изменила версию автоматически

Я написал несколько VBA в Excel 2013, который ссылается на Outlook и теперь используется на виртуальной машине. Мой ноутбук был обновлен до Office 2016 на прошлой неделе, я внес некоторые изменения в этот инструмент, а затем он не смог работать на виртуальной машине.

Оказывается, ссылка на VBA Outlook в файле была изменена на v16.0 (Office 2016), и поэтому, когда виртуальная машина пыталась запустить код (в 2013 году), она не смогла найти эту ссылку.

Была также общая ссылка Office, которая осталась как v15.0 все же.

Я не смог найти никакой документации по этому вопросу - это стандартное поведение и, если да, какие-либо идеи о том, как я могу внести дальнейшие изменения в этот файл, не перепутывая ссылки каждый раз?

1 ответ

Это стандартное поведение.

Вам нужно перейти от раннего к позднему связыванию. Удалите ссылку на Outlook в VBE и объявите приложение Outlook как Object в коде.

Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")

Имейте в виду, что при этом вы потеряете intellisense, и вам, возможно, придется изменить некоторые константы на их числовые значения, например olMailItem в 0,

Убедитесь, что у вас есть Option Explicit в самом верху вашего модуля (ей), так как это высветит ошибки компиляции.

Другие вопросы по тегам