日期选择器ActiveX excel VBA在自动创建时没有响应

时间:2013-07-12 18:00:41

标签: excel-vba calendar activex activexobject vba

亲爱的(vba)程序员,

我正在excel中构建一个动态过滤器(使用vba和ActiveX控件)。 我想在Excel 2010中使用Microsoft日期和时间选择器控件,版本6.0。 当我使用以下内容生成下拉日历时

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

希望有人有答案。 提前致谢!

1 个答案:

答案 0 :(得分:0)

是..这是Windows中mscomctl控件的问题。如果mscomctl.ocx未在system32文件夹中注册,则您的Excel不支持该日期选择器。

您可以创建自定义日期选择器,并且不需要任何此类控件,因为它将完全是具有不同对象的用户表单。

查看this video以查看其外观:

如何创建?

  1. 使用公式在Excel工作表中创建Excel日历。检查this video以查看操作方法。

  2. 然后,创建一个Userform。为每天和标题添加标签。

  3. 将这些标签的标题设置为单元格引用。

  4. 在标签点击事件中 - 更改该标签的bgcolor并将值保存在其标题中。

  5. 如果你仔细观看两个视频,那么这是自我解释的。

    如果您不想创建自己的日期选择器,则需要将mscolctl.ocs放在system32文件夹中并执行批处理命令来执行它。

    一旦点击START> RUN并输入REGSVR32 MSCOMCTL.OCX