Средство выбора даты ActiveX excel VBA не отвечает при автоматическом создании

Уважаемые (vba) программисты!

Я создаю динамический фильтр в Excel (с элементами управления vba и ActiveX). Я хотел бы использовать элемент управления Microsoft Date and Time Picker, версия 6.0 в Excel 2010. Когда я создаю раскрывающийся календарь с:

Set OLEObj = Sheets("Blad3").OLEObjects.Add(ClassType:="MSComCtl2.DTPicker.2",   Link:=False, DisplayAsIcon:=False, Left:=10, Top:=10, Width:=123, Height:=40)

Он установлен правильно, но не работает. Когда я включаю и выключаю режим разработчика, он сразу начинает работать. Мне это кажется ошибкой или мне нужно активировать объект или что-то в этом роде ??

У меня та же проблема, что и "первая странная вещь": http://www.ozgrid.com/forum/showthread.php?t=47290

Надеюсь, у кого-то есть ответ. Заранее спасибо!


person drexl    schedule 12.07.2013    source источник


Ответы (1)


Да .. Это проблема с mscomctl управлением в Windows. Если mscomctl.ocx не зарегистрирован в папке system32, тогда ваш Excel не будет поддерживать этот выбор даты.

Вы можете создать настраиваемое средство выбора даты, и для него не потребуется такой элемент управления, поскольку это будет полностью пользовательская форма с различными объектами.

Посмотрите это видео, чтобы увидеть, как оно выглядит:

Как это создать?

  1. Создайте календарь Excel на листе Excel с помощью формул. Посмотрите это видео, чтобы узнать, как это сделать.

  2. Затем создайте пользовательскую форму. Добавьте ярлыки для каждого дня и заголовки.

  3. Установите заголовок этих меток как ссылку на ячейку.

  4. При нажатии на метку - измените цвет метки и сохраните значение в ее заголовке.

Отдых, это говорит само за себя, если вы внимательно посмотрите оба видео.

Если вы не хотите создавать собственное средство выбора даты, вам нужно поместить mscolctl.ocs в папку system32 и выполнить пакетную команду для ее выполнения.

Когда он появится, нажмите ПУСК> ВЫПОЛНИТЬ и введите REGSVR32 MSCOMCTL.OCX.

person Kamal G    schedule 12.07.2013