目录

DTPicker控件

DTPicker控件的时间和日期的切换

DTPicker控件的日期输入方式

DTPicker控件的Value属性与Change事件

使用DTPicker控件实现日期选择并赋值给单元格

注册DTPicker控件


在Excel中,经常需要输入日期。为保证输入正确,可以通过一个日历控件进行输入。

在工作表中添加DTPicker控件,并隐藏。在工作表中添加工作表SelectionChange事件,在事件中判断Target参数所指的单元格,当为特定单元格时显示DTPicker控件,并调整位置至当前单元格处,否则隐藏控件。然后添加DTPicker控件的Change事件,将DTPicker的值赋值给活动单元格。

Option Explicit'工作表激活时隐藏日历控件
Private Sub Worksheet_Activate()Me.DTPicker21.Visible = False
End Sub'日历控件的 change事件
Private Sub DTPicker21_Change()ActiveCell.Value = Me.DTPicker21.Value
End Sub'工作表的SelectionChange事件
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Me.DTPicker21.Visible = False'选中一个单元格则继续If Target.Count = 1 Then'选中A列及第2行以下的单元格继续If Target.Column = 1 And Target.Row > 1 ThenMe.DTPicker21.Visible = TrueMe.DTPicker21.Top = ActiveCell.TopMe.DTPicker21.Left = ActiveCell.Left + ActiveCell.WidthEnd IfEnd If
End Sub

DTPicker控件

DTPicker控件是VBA中常用的日期控件,该控件由日期输入框和日期选择窗口两部分组成,如图。使用该控件,用户可以方便地选择日期和时间。

DTPicker控件的时间和日期的切换

DTPicker控件可以用来输入日期和时间,可以通过Format属性来改变其输入模式及日期格式。该属性可以为表中的任意常量。

DTPieker的Format属性

常  量

说  明

dtpLangDate

0

日期输入,格式为控制面板“长日期”所示的格式

dtpShortDate

1

日期输入。格式为控制而板“短日期”所示的格式

dtpTime

2

时间输入、格式为"hh:mm:ss”

dtpCustom

3

自定义格式。当设置为该值时,可以使用customFormat属性设置自定义格式

DTPicker控件的日期输入方式

利用DTPicker控件可以直接在日期输入框中输入,也可以通过单击日期选择窗口中的某个日期进行输入。该控件的属性UpDown可以控制这两种方式的输入。当该属性为True时,则只能通过日期输入框进行输入,在其右侧提供的“上下”按钮可以用于调整日期年、月、日的值。当该属性为False时,则其右侧的按钮成为下拉按钮。当单击该按钮时,则会出现日期选择窗口。

DTPicker控件的Value属性与Change事件

无论通过日期输入框还是通过日期选择窗口进行日期的输入,都将改变DTPicker控件的Value属性,同时会触发Change事件程序的执行。一般地,当使用该控件对单元格赋值时,总是在Change事件中添加代码,将控件的Value属性的值赋值给单元格的Value属性。

使用DTPicker控件实现日期选择并赋值给单元格

对于控件相关的代码开发,大多数使用事件来“自动实现”。因而对于某项功能的开发,首先应尽量描述其运行的步骤或可能出现的各种情形,然后根据不同的步骤或情形选择不同的事件并编写代码。如本例,需要通过DTPicker控件选择日期并实现输入。若设想整个操作的流程,可以包含以下步骤:
(1)激活工作表时,DTPicker控件不显示(隐藏)。
(2)单击或双击需要输入日期的单元格时,在单元格的右侧显示DTPicker控件。
(3)当更改日期后,自动赋值给活动的单元格。
(4)当选择其他单元格时,控件隐藏。
针对以上步骤可以为其分别选择事件如下:
    步骤1  需要实现激活工作表时隐藏DTPicker控件,此时可以选择工作表的Activate事件,在其中编写代码将控件的Visible属性设置为False。还可以添加对DTPicker控件的初始化,如格式属性等。
    步骤2  当单击或双击特定的单元格时,显示控件,此时可以选择工作表的SelectionChange事件或者BeforeDoubleClick事件,在其中编写代码将控件的Visible属性设置为True,并设置Top和Left属性使其出现在当前Target单元格的右侧。
    步骤3更改日期后自动赋值给单元格,则可以选择DTPicker控件的Change事件,在该事件程序中编写代码将控件的Value属性的值赋值给单元格的Value属性。
    步骤4选择其他单元格时隐藏控件,此时可以使用SelectionChange事件隐藏控件,将控件的Visible属性设置为False。  (本步骤也可以使用DTPicker的LostFocus事件。)
    以上步骤(2)和步骤(4)都使用了SelectionChange事件,因而这两个步骤可以合用一个事件程序。在该事件中可以使用分支结构的IF---Then语句或者Select Case语句判断Target参数是否为特定的单元格,在特定单元格的分支下编写与步骤(2)相关的代码,在其余分支
中写入与步骤(4)相关的代码。

注册DTPicker控件

如果遇到DTPicker控件无法使用,是由于系统中缺少“mscomct2.  ocx”控件。开发者需要下载该文件,并将其复制到“C:\Windows\System32\”下(64位系统则需要复制到C: \Windows\SysWOW64\).
    然后在“所有程序”中找到“附件”下的“命令提示符”,右键单击后选择“以管理员身份运行”,在出现的窗口中输入

regsvr32 mscomct2.ocx

后按回车键确定,即可完成该控件的注册。

Excel 2010 VBA 入门 124 日期选择控件相关推荐

  1. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  2. 【C#】wpf自定义calendar日期选择控件的样式

    原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...

  3. ExtJS6.0扩展日期选择控件为也可以选择时间

    PS:ExtJS自带的日期选择控件只能够选择日期,但是现在的需求需要精确到秒,所以在网上搜索了一些例子(大部分是4.0的)作为参考,然后改出了6.0可用的一个日期时间选择控件. 1.找到extjs6. ...

  4. js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件

    js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件 参考文章: (1)js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) ...

  5. [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)

    前言 在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二) 的最后,有提到一个解决方案. 不过这方案有一个条件  ==> "2. 每年的周数从(1-52), 如果超 ...

  6. [Ext JS 4] 实战之 带week(星期)的日期选择控件(二)

    前言 JavaScript 中的日期和时间 [Ext JS 4] 实战之 带week(星期)的日期选择控件(一) 如对本篇的一些预备知识需详尽了解,可参考以上两篇. Javascript 有提供Dat ...

  7. extjs 月份选择控件_Ext JS 4实现带week(星期)的日期选择控件(实战二)

    前言 JavaScript 中的日期和时间 Ext JS 4实现带week(星期)的日期选择控件(实战一) 如对本篇的一些预备知识需详尽了解,可参考以上两篇. Javascript 有提供Date 对 ...

  8. Swing的日期选择控件DatePicker

    Swing的日期选择控件 依赖的包 图片示例 示例代码段 设置日期控件的值 验证代码 结论 依赖的包 下载DatePicker.jar 图片示例 示例代码段 JLabel dateJLabel = n ...

  9. java界面日期选择控件,JavaFX界面设计之时间选择器(1)

    本章我们主要介绍javafX时间选择器的使用,描述了DatePicker控件的基本特性. javaFX的DatePicker控件可以让我们从一个给定的日历中选择一天,主要用于网站或应用中需要用户输入一 ...

最新文章

  1. COCO数据集数据转换为XML格式
  2. arrays.sort(._Arrays.sort与Arrays.parallelSort
  3. 【转】matlab函数编译成dll供Cpp调用的方法
  4. $GLOBALS -- 变量
  5. 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定
  6. 领域驱动设计之单元测试最佳实践(二)
  7. Windows 7下的Excel 2010同时打开多个独立的窗口
  8. VC.dll相关及其C#交互
  9. lsof u mysql wc l_lsof命令详解
  10. shell脚本中一些日期的定义
  11. 计算机c盘中哪些东西能删除吗,C盘哪些文件可以删除
  12. MySQL驱动jar包的下载--保姆教程
  13. 最全牛人博客,你可以学习到太多太多
  14. 思科 Cisco DHCP中继配置
  15. VVC/VTM:代码学习——量化实现之RDOQ
  16. 1.3 数值分析 有效数字
  17. 小程序开发之组件video(视频)
  18. python 动漫卡通人物图片大全_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
  19. Uva 12627 Erratic Expansion
  20. Python 看门狗功能实现

热门文章

  1. Ubuntu桌面操作系统综合贴
  2. STM32按键控制LED灯(中断实现)
  3. wannafly挑战赛26 B 冥土追魂 (思维+排序)
  4. 人生的诗·396节~400节
  5. 学习数据结构的一些预备知识
  6. 知乎热榜第一破10w阅读-Android不行了?2021程序员的风口又要来了,你还不抓紧机会....
  7. CleanMyMac X4.12.1苹果电脑系统优化软件更新功能介绍
  8. 2020年黄山旅游路线
  9. 怎么让拍摄的视频生成二维码,扫描后即可观看?
  10. PHP到期自动提醒邮件,用Excel实现 “到期”自动提醒,非常实用