Управление календарем VBA Проблема различных версий - PullRequest
0 голосов
/ 11 апреля 2011

Я создал простой инструмент Excel, который использует дополнительный элемент управления Calendar (mscal.ocx).Все работало нормально, на разных системах, однако, календарь, кажется, не реализован, и вместо того, чтобы просто не отображать средство выбора даты, вся форма падает.

Есть ли способ реализовать элемент управления календаря так, чтобыэто работает на каждой системе?Или я должен сам кодировать средство выбора даты?(Office12)

Ответы [ 3 ]

2 голосов
/ 11 апреля 2011

Всякий раз, когда вы используете элементы управления, которые не являются родными для всех операционных систем и версий Excel, вы сталкиваетесь с проблемами на других компьютерах.Часто при разработке вы получаете доступ к формам, которых нет в большинстве систем, а существуют только в вашей, потому что у вас установлена ​​Visual Studio или специальный пакет Microsoft Office.Всякий раз, когда возникает такая проблема, у вас есть 3 варианта:

  1. Работайте над тем, чтобы попытаться упаковать недостающие элементы управления (mscal.ocx), и попытаться создать сценарий развертывания для ваших пользователей, которыйскопирует его в каталог System32 и зарегистрирует его.Это неприятно, потому что обычно для одного элемента управления существует большая цепочка зависимостей.

  2. Примите во внимание тот факт, что некоторые системы не будут поддерживать ваш инструмент и предупреждать пользователей заранее или предоставлятьвиртуальная машина, к которой у них есть доступ, и что ваш инструмент будет работать на ней.

  3. Изобретите любой другой элемент управления, который вы используете, с помощью основных кнопок, списков, раскрывающихся списков, изображений и т. д.Это самая большая боль из всех и часто требует от вас компрометировать некоторые приятные функциональные возможности.

Мне пришлось бесчисленное количество раз заниматься номером 3 для инструментов Excel 2007, работающих на системах XP,но не Vista +, где некоторые элементы управления ActiveX (например, Datagrid) больше не поддерживаются.

0 голосов
/ 31 мая 2012

Вы можете сделать это без элементов управления календарем.

Как этот пример здесь

0 голосов
/ 11 апреля 2011

я бы собрал против Excel 10 (2003), так как не у всех может быть новый Office 12 (2010).

или посмотрите, можете ли вы сослаться на этот ocx локально и развернуть с помощью файла Excel

...