Если у меня есть электронная таблица, на которой я ссылался на библиотеку объектов MS Outlook 14.0 из редактора VBA, и у пользователя, у которого установлен только MS Outlook 12.0, тогда, когда этот пользователь открывает электронную таблицу, они получают ошибку компиляции в этой строке
Range("export_date") = Date - 1
Если они перейдут в "Инструменты", "Ссылки" в списке ссылок, появится такая ошибка:
MISSING: MS Outlook 14.0 Object Library
Если они отменили выбор этой библиотеки и вместо этого выберите
Библиотека объектов MS Outlook 12.0
... код затем правильно компилируется, и электронная таблица отлично работает для них.
Я действительно не понимаю, почему это не работает в функции Date(), поскольку это функция VBA, а не функция Outlook. Но что еще важнее, есть ли способ избежать этой ситуации? Единственное, о чем я могу думать, это не устанавливать ссылки и просто использовать переменные типа Object и создавать экземпляры через CreateObject ( "Outlook.Application" ) и т.д., Но я не хочу отказываться от сильной типизации и т.д.
Может ли кто-нибудь предложить лучший способ справиться с этой проблемой обратной совместимости со старыми версиями MS Office?