Excel 利用日期控件输入时间
2013-11-15 16:36
309 查看
首先先在sheet1中插入一个日期控件DTPicker(日期拾取器)
然后输入代码:
ThisWorkBook中的代码:
Private Sub Workbook_Open()
'调整DTP控件的大小
With
Sheet1.DTPicker1
'设置DTP控件的高度等于行高
.Height = Sheet1.Cells(1, 4).Height
'设置DTP控件的宽度略大于第三列的宽度,使得DTP控件的下拉按钮在单元格外
'此处我们假设第三列的所有单元格的高度相同,否则在每次显示DTP控件时,
'都应根据当前单元格调整控件大小
.Width = Sheet1.Cells(1, 4).Width + 18
.Visible = False
End
With
End Sub
Sheet1中的代码:
Private Sub
DTPicker1_CloseUp()
'禁用事件,在将DTP控件的值更新到单元格时,防止Worksheet_Change被误激活
Application.EnableEvents = False
ActiveCell.Value = Me.DTPicker1.Value
Me.DTPicker1.Visible = False
'启用事件
Application.EnableEvents = True
End Sub
Private Sub
Worksheet_Change(ByVal Target As Range)
'判断是否只选中了单个单元格
If
Target.Count = 1 Then
'如果删除第三列的单元格内容,则隐藏DTP控件
If Target.Column = 3 And Target = "" Then
Me.DTPicker1.Visible = False
End If
End If
End Sub
Private Sub
Worksheet_SelectionChange(ByVal Target As Range)
If
Target.Count = 1 Then
Application.EnableEvents = False
If Target.Column = 4 Then
With Me.DTPicker1
.Visible = True
'调整DTP控件的位置,使其显示在当前单元格之中
.Top = Target.Top
.Left = Target.Left
If Target <> "" Then
'如果当前单元格已有内容,则设置DTP控件初始值为当前单元格日期,否则为系统当前日期
.Value = Target.Value
Else
.Value = Date
End If
End With
Else
Me.DTPicker1.Visible = False
End If
Application.EnableEvents = True
End If
End Sub
代码好了以后,在sheet1中,点击第4列(也就是D列)的任意单元格,就会出现选择时间的DTPicker
选择以后,就会在单元格留下刚才选择的日期。
怎么样,挺好玩的。哈
然后输入代码:
ThisWorkBook中的代码:
Private Sub Workbook_Open()
'调整DTP控件的大小
With
Sheet1.DTPicker1
'设置DTP控件的高度等于行高
.Height = Sheet1.Cells(1, 4).Height
'设置DTP控件的宽度略大于第三列的宽度,使得DTP控件的下拉按钮在单元格外
'此处我们假设第三列的所有单元格的高度相同,否则在每次显示DTP控件时,
'都应根据当前单元格调整控件大小
.Width = Sheet1.Cells(1, 4).Width + 18
.Visible = False
End
With
End Sub
Sheet1中的代码:
Private Sub
DTPicker1_CloseUp()
'禁用事件,在将DTP控件的值更新到单元格时,防止Worksheet_Change被误激活
Application.EnableEvents = False
ActiveCell.Value = Me.DTPicker1.Value
Me.DTPicker1.Visible = False
'启用事件
Application.EnableEvents = True
End Sub
Private Sub
Worksheet_Change(ByVal Target As Range)
'判断是否只选中了单个单元格
If
Target.Count = 1 Then
'如果删除第三列的单元格内容,则隐藏DTP控件
If Target.Column = 3 And Target = "" Then
Me.DTPicker1.Visible = False
End If
End If
End Sub
Private Sub
Worksheet_SelectionChange(ByVal Target As Range)
If
Target.Count = 1 Then
Application.EnableEvents = False
If Target.Column = 4 Then
With Me.DTPicker1
.Visible = True
'调整DTP控件的位置,使其显示在当前单元格之中
.Top = Target.Top
.Left = Target.Left
If Target <> "" Then
'如果当前单元格已有内容,则设置DTP控件初始值为当前单元格日期,否则为系统当前日期
.Value = Target.Value
Else
.Value = Date
End If
End With
Else
Me.DTPicker1.Visible = False
End If
Application.EnableEvents = True
End If
End Sub
代码好了以后,在sheet1中,点击第4列(也就是D列)的任意单元格,就会出现选择时间的DTPicker
选择以后,就会在单元格留下刚才选择的日期。
怎么样,挺好玩的。哈
相关文章推荐
- 解决每次打开Word、Excel等都要重…
- Excel 公式提取文件名
- FileSystemObject的方法和属性
- VBA 获取和设置(文件和文件夹属性…
- VBA 检查文件或文件名是否存在
- VBA ADO连接语法及常用参数
- 算法系列15天速成 第十一天 树操作(上)
- VBA-循环赋值CheckBox
- VBA数据库中多表导出合并另存
- VBA 利用Wscript.Shell打開記事本 …
- VBA檢查文件夾里是否存在指定文件…
- TransferSpreadsheet的语法:
- OpenCV中的Ptr解析
- win7怎么开启特定端口让其他机器访问
- 删除目录
- 安卓中常用的位图操作
- 期中考
- jQuery 事件 - resize() 方法
- kindeditor 上传图片 显示绝对 路径
- AllWinner-Android方案编译与烧录升级指导