【问题标题】:How to Add Date Picker To VBA UserForm如何将日期选择器添加到 VBA 用户窗体
【发布时间】:2012-11-04 18:27:18
【问题描述】:

我正在寻找添加到 userForm 以使用户能够选择日期的控件。我在这个地址找到了一个不错的

Formatting MM/DD/YYYY dates in textbox in VBA

来自 Siddharth Rout,它非常完美,但它会生成不可见的表格,这对我的应用程序来说不是必需的。我试图停止创建工作表,但我想不通。

您能否告诉我如何正确修改 Siddharth Rout 代码或将我指向另一个类似的应用程序?

感谢您的宝贵时间

【问题讨论】:

标签: vba excel


【解决方案1】:

Office 2013 说明

(适用于 Windows 7 (x64) | MS Office 32 位

选项 1 |检查能力是否已经存在 | 2分钟

  1. 打开 VB 编辑器
  2. 工具 -> 附加控件
  3. 选择“Microsoft Monthview Control 6.0 (SP6)”(如果适用)
  4. 对 VBA 用户窗体使用“DatePicker”控件

选项 2 | “月视图”控件当前不存在 | 5分钟

  1. 关闭 Excel
  2. 下载 MSCOMCT2.cab(这是一个cabinet文件,提取成两个有用的文件)
  3. 提取 两个文件 | .inf 文件和 .ocx 文件
  4. 安装 |右键单击 .inf 文件 |点击“安装”
  5. 移动 .ocx 文件 |从“C:\Windows\system32”移动到“C:\Windows\sysWOW64”
  6. 运行CMD |开始菜单 -> 搜索 -> "CMD.exe" |右键单击图标 |选择“以管理员身份运行”
  7. 注册 Active-X 文件 |输入“regsvr32 c:\windows\sysWOW64\MSCOMCT2.ocx”
  8. 打开 Excel |打开 VB 编辑器
  9. 激活控制 |工具->参考 |选择“Microsoft Windows 通用控件 2-6.0 (SP6)”
  10. 用户表单 控件 |在 VB 项目中选择任何用户窗体 |工具->附加控件
  11. 选择“Microsoft Monthview Control 6.0 (SP6)”
  12. 为 VBA 用户窗体使用“DatePicker”控件

好的,如果您在 Windows 7 (x64) 上安装了 Office 2013(32 位),这两个步骤中的任何一个都应该适合您。如果您有不同的 Windows 7 和 Office 2013 组合,某些步骤可能会有所不同。

“月视图”控件将是您完全充实的“日期选择器”。它配备了自己的属性和图像。它工作得很好。祝你好运。

网站:上面的“bonCodigo”(这是他作品的更新扩展)
站点:上面的“AMM”(这只是他添加的一个扩展)
站点:各种 Microsoft 支持网页

【讨论】:

  • 值得注意的是,要执行这些步骤,需要 32 位版本的 Office。由于 mscomct2.ocx ActiveX 控件是 32 位控件,因此它不适用于 64 位版本的 office。此外,以防其他人像我一样绝望:Microsoft Outlook Date Control 不能在 Visual Basic UserForm 上使用。
  • 我按照这些步骤操作,仍然看不到工具箱中的控件。我什至手动浏览了 mscomct2.ocx 文件并将其手动添加到引用中,但我仍然看不到它...
  • 此解决方案中 cab 文件的链接目前已损坏。
【解决方案2】:

您可以尝试“Microsoft 日期和时间选择器控件”。 要使用它,请在工具箱中右键单击并选择“其他控件...”。 然后检查“Microsoft Date and Time Picker Control 6.0”并确定。 您将在工具箱中有一个新控件来执行您需要的操作。

我刚刚在以下位置找到了一些打印屏幕: http://www.logicwurks.com/CodeExamplePages/EDatePickerControl.html 忘记程序,只检查打印屏幕。

【讨论】:

    【解决方案3】:

    在 Access 2013 中。 将“文本框”控件拖放到表单上。 在“格式”选项卡下控件的“属性表”上,找到“格式”属性。 将此设置为日期格式选项之一。 工作完成了。

    【讨论】:

      【解决方案4】:

      简单介绍一下与此控件相关的一些问题。

      日期选择器不是 Office 软件包附带的标准控件。因此,当应用程序部署在其他一些机器/版本的 Office 中时,开发人员遇到了诸如缺少日期选择器控件等问题。为了使用它,您必须激活对包含它的 .dll、.ocx 文件的引用。

      如果缺少日期选择器,您必须替换 System 或 System32 目录中的 MSCOMCT2.OCX 文件并正确注册。 Try this link to do 正确替换文件。

      在VBA编辑器菜单栏->选择工具->引用然后找到日期选择器引用并检查。

      如果您需要该文件,请从here 下载 MSCOMCT2.OCX。

      【讨论】:

      【解决方案5】:

      日历表单可以用作日期选择器的替代品。 在用户表单示例中,我使用此日历表单将日期添加到文本框。双击文本框时,会显示日历表单:

      Private Sub txtDOTDate_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
      Call GetCalendar
      End Sub
      
      Sub GetCalendar()
          dateVariable = CalendarForm.GetDate(DateFontSize:=11, _
              BackgroundColor:=RGB(242, 248, 238), _
              HeaderColor:=RGB(84, 130, 53), _
              HeaderFontColor:=RGB(255, 255, 255), _
              SubHeaderColor:=RGB(226, 239, 218), _
              SubHeaderFontColor:=RGB(55, 86, 35), _
              DateColor:=RGB(242, 248, 238), _
              DateFontColor:=RGB(55, 86, 35), _
              TrailingMonthFontColor:=RGB(106, 163, 67), _
              DateHoverColor:=RGB(198, 224, 180), _
              DateSelectedColor:=RGB(169, 208, 142), _
              TodayFontColor:=RGB(255, 0, 0))
      If dateVariable <> 0 Then frmflightstats.txtDOTDate = dateVariable
      End Sub
      

      Source of template

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多