0

亲爱的 (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

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

4

1 回答 1

0

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

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

查看此视频以了解其外观:

如何创建这个?

  1. 使用公式在 Excel 工作表中创建 Excel 日历。查看此视频以了解如何操作。

  2. 然后,创建一个用户窗体。为每一天和标题添加标签。

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

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

休息一下,如果您仔细观看这两个视频,它是不言自明的。

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

一旦它在那里单击开始>运行并键入REGSVR32 MSCOMCTL.OCX

于 2013-07-12T18:38:44.393 回答