Excel 2010 VBA 入门 124 日期选择控件
目录
码
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 日期选择控件相关推荐
- Excel 2010 VBA 入门 034 创建图片批注
目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...
- 【C#】wpf自定义calendar日期选择控件的样式
原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...
- ExtJS6.0扩展日期选择控件为也可以选择时间
PS:ExtJS自带的日期选择控件只能够选择日期,但是现在的需求需要精确到秒,所以在网上搜索了一些例子(大部分是4.0的)作为参考,然后改出了6.0可用的一个日期时间选择控件. 1.找到extjs6. ...
- js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件
js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件 参考文章: (1)js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) ...
- [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)
前言 在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二) 的最后,有提到一个解决方案. 不过这方案有一个条件 ==> "2. 每年的周数从(1-52), 如果超 ...
- [Ext JS 4] 实战之 带week(星期)的日期选择控件(二)
前言 JavaScript 中的日期和时间 [Ext JS 4] 实战之 带week(星期)的日期选择控件(一) 如对本篇的一些预备知识需详尽了解,可参考以上两篇. Javascript 有提供Dat ...
- extjs 月份选择控件_Ext JS 4实现带week(星期)的日期选择控件(实战二)
前言 JavaScript 中的日期和时间 Ext JS 4实现带week(星期)的日期选择控件(实战一) 如对本篇的一些预备知识需详尽了解,可参考以上两篇. Javascript 有提供Date 对 ...
- Swing的日期选择控件DatePicker
Swing的日期选择控件 依赖的包 图片示例 示例代码段 设置日期控件的值 验证代码 结论 依赖的包 下载DatePicker.jar 图片示例 示例代码段 JLabel dateJLabel = n ...
- java界面日期选择控件,JavaFX界面设计之时间选择器(1)
本章我们主要介绍javafX时间选择器的使用,描述了DatePicker控件的基本特性. javaFX的DatePicker控件可以让我们从一个给定的日历中选择一天,主要用于网站或应用中需要用户输入一 ...
最新文章
- COCO数据集数据转换为XML格式
- arrays.sort(._Arrays.sort与Arrays.parallelSort
- 【转】matlab函数编译成dll供Cpp调用的方法
- $GLOBALS -- 变量
- 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定
- 领域驱动设计之单元测试最佳实践(二)
- Windows 7下的Excel 2010同时打开多个独立的窗口
- VC.dll相关及其C#交互
- lsof u mysql wc l_lsof命令详解
- shell脚本中一些日期的定义
- 计算机c盘中哪些东西能删除吗,C盘哪些文件可以删除
- MySQL驱动jar包的下载--保姆教程
- 最全牛人博客,你可以学习到太多太多
- 思科 Cisco DHCP中继配置
- VVC/VTM:代码学习——量化实现之RDOQ
- 1.3 数值分析 有效数字
- 小程序开发之组件video(视频)
- python 动漫卡通人物图片大全_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
- Uva 12627 Erratic Expansion
- Python 看门狗功能实现
热门文章
- Ubuntu桌面操作系统综合贴
- STM32按键控制LED灯(中断实现)
- wannafly挑战赛26 B 冥土追魂 (思维+排序)
- 人生的诗·396节~400节
- 学习数据结构的一些预备知识
- 知乎热榜第一破10w阅读-Android不行了?2021程序员的风口又要来了,你还不抓紧机会....
- CleanMyMac X4.12.1苹果电脑系统优化软件更新功能介绍
- 2020年黄山旅游路线
- 怎么让拍摄的视频生成二维码,扫描后即可观看?
- PHP到期自动提醒邮件,用Excel实现 “到期”自动提醒,非常实用