18

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

在 VBA 的文本框中格式化 MM/DD/YYYY 日期

来自 Siddharth Rout,它非常完美,但它会生成我的应用程序不需要的隐形表。我试图停止创建工作表,但我无法弄清楚。

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

谢谢你的时间

4

5 回答 5

23

办公室 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(它是一个压缩文件,提取成两个有用的文件)
  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 用户窗体使用“日期选择器”控件

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

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

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

于 2013-07-05T16:16:50.267 回答
18

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

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

于 2012-11-16T03:09:34.383 回答
3

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

于 2013-12-19T17:42:25.513 回答
3

只需对与此控件相关的一些问题进行一些说明即可。

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

如果缺少日期选择器,您必须替换 System 或 System32 目录中的 MSCOMCT2.OCX 文件并正确注册。尝试此链接以正确替换文件。

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

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

于 2012-11-17T05:12:42.087 回答
0

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

在此处输入图像描述

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

模板来源

于 2021-11-20T20:10:58.160 回答