发布时间:2013-02-28 15:42:53 人气:
方法1:
先将控件工具箱调出来。视图-工具栏-控件工具箱。 在控件工具箱上最下面那个按钮是其他控件,打开它,找到Microsoft Date and Time Picker Control, 这个就是日历控件。然后在一个单元格上拖画一个框,日历控件就出来了。 然后在控件工具箱上退出设计模式,日历控件就能使用了。
在你所要用到的单元格内画出,大小要和单元格一样;
选中控件,右键单击选择菜单“设置控件格式”,在"属性"选项中选择“大小、位置均随单元格而变”,确定;
右键单击控件选择菜单“查看代码”,进入VBA后,键入以下代码:
Private Sub DTPicker1_Change()
Sheet1.Cells(1, 1) = CStr(DTPicker1)
End Sub
Private Sub DTPicker1_Click()
Sheet1.Cells(1, 1) = CStr(DTPicker1)
End Sub
返回到Excel,调整单元格大小使控件完全显示;
退出设计模式,OK。
方法2:
在EXCEL窗口中执行“视图”→“工具栏”→“控件工具箱”;弹出如下图对话框;
按上图的操作,找到“日历控件11.0”,之后在EXCEL窗口中使用鼠标左键一拖,拖出如下图的控件;
上图,我们要实现的结果是:在C列中,无论点击哪个单元格,就弹出日历控件,选择一个日期之后,日期自动插入到单元格;除C列之外,点击其他列的单元格,不会弹出日历选择控件;
要想实现这样的效果,得使用VBA来实现;
选择日历控件,鼠标左键双击,进入代码编辑模式;如下图!
上图中,第一个过程代码就是日历控件所需要的代码,另外,还得需要另外一个代码,在图中按红线圈住部分选择,找到对应的过程,输入如下的VBA代码即可!
完成之后,直接运行VBA代码,返回EXCEL操作窗口,即可实现效果了!
如上图,C3单元格已插入了日期,当你选择C列其他单元格时,就弹出日历控件,以供选择,选择完成,即可插入日期了!
为方便操作,提供源代码:
Private Sub Calendar1_Click()
ActiveCell = Calendar1.Value
Me.Calendar1.Visible = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Me.Calendar1.Visible = True
Else
Me.Calendar1.Visible = False
End If
End Sub
知识扩展:
①执行上述代码时,可能会遇到创建宏的提示,随便输入宏名,再运行即可!
②可以将上述的代码及EXCEL文件一起保持,以备不时之需,以后你再需要到这种功能,直接打开EXCEL文件即可!
打开EXCEL文件,运行原来的宏,有可能出现“宏”被禁止运行的提示,解决的方法如下:
在EXCEL操作中执行“工具”→“宏”→“安全性”;弹出如下的对话框;
上图中,选择“安全级”选项卡,将安全设置为“中”即可!之后关闭EXCEL,再打开,就能运行了!