您的位置:首页 > 其它

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

选择以后,就会在单元格留下刚才选择的日期。

怎么样,挺好玩的。哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: