在EXCEL中,如果想在目标列插入日期控件,当单击目标列的某一单元格时,自动出现如图一所示的日历,由用户选择需要输入的日期,怎样做才能实现呢?下面我们以在工作表的第三列(C列)为插入日期的目标列为例,讲解具体步骤。
前期准备工作(包括相关工具或所使用的原料等)
Excel详细的操作方法或具体步骤
第一步
在Excel中单击“视图”--“工具栏”--“控件工具箱”--“其它控件”,选择“Microsoft Date and Time Picker Control Version 6.0”控件,即DTP控件。
第二步
在Excel中插入(画出)这个DIP控件。
第三步
单击“工具”--“宏”--“Visual Basic编辑器”,在代码区分别在以下四个事件中输入相应的代码。如图二所示。
以下是四个事件的相应代码。
Private Sub DTPicker1_CloseUp() '禁用事件,在将DTP控件的值更新到单元格时,防止Worksheet_Change被误激活 Application.EnableEvents=False ActiveCell.Value=Me.DTPicker1.Value Me.DTPicker1.Visible=False '启用事件 Application.EnableEvents=TrueEnd 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 IfEnd Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count=1 Then Application.EnableEvents=False If Target.Column=3 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 IfEnd Sub
Private Sub Workbook_Open() '调整DIP控件的大小 With Sheet1.DTPicker1 .Height=Sheet1.Cells(1, 3).Height .Width=Sheet1.Cells(1, 3).Width + 18 .Visible=True End WithEnd Sub

存盘,退出,再次打开刚保存的这个文件,点击C列的单元格试一试,看看怎么样,很酷吧。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
