您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > Excel2007中如何实现日历控件
Excel2007中如何实现选择日历控件很多表格中要用到通过日历选择日期将日期插入到指定的单元格,那么如何实现这个功能呢?下面的操作将实现这个功能:第一步:打开开发工具在EXCEL2007窗口中单击→“EXCEL选项”→“常用”→勾选“在功能区显示‘开发工具’选项卡(D)”,按如下步骤操作:单击选中要添加日历控件的单元格→开发工具→插入→Activex→日历控件12.0→确定;第二步:按上图的操作,找到“日历控件12.0”,点击确定后,光标变成“十”字形,之后在EXCEL2007窗口中使用鼠标左键一拖,拖出如下图的控件;上图,我们要实现的结果是:在B列和C列中,无论点击哪个单元格,都弹出日历控件,并能随着所选单元格的位置变动日历控件的位置,选择一个日期之后,日期自动插入到单元格;除B、C列之外,点击其他列的单元格,不会弹出日历选择控件;要想实现这样的效果,得使用VBA来实现;第三步:选择日历控件,鼠标左键双击,进入代码编辑模式;输入代码,如下图!上图中,第一个过程代码就是日历控件所需要的代码,另外,还得需要另外一个代码,来控制日历的显示,在图中按红线框住部分选择,找到对应的过程,输入如下的VBA代码即可!第四步:完成之后,直接运行VBA代码(按F5或者单击菜单栏运行,运行子过程/用户窗体→随意输入宏名称点击创建,确定→按下F5或者单击菜单栏运行,运行子过程/用户窗体即可),返回EXCEL操作窗口,即可实现效果了!如上图,当选中B列或C列中的一个单元格,将弹出日历控件,以供选择,选择完成,即可插入日期!下面提供两种VBA源代码:1、日历控件代码(只能用于单列、日历位置固定)PrivateSubCalendar1_Click()ActiveCell=Calendar1.ValueMe.Calendar1.Visible=FalseEndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)IfTarget.Column=1ThenMe.Calendar1.Visible=TrueElseMe.Calendar1.Visible=FalseEndIfEndSub2、日历控件代码(可用于两列、日历位置随单元格移动)PrivateSubCalendar1_Click()ActiveCell.Value=Calendar1.ValueCalendar1.Visible=FalseEndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)IfTarget.Column=2OrTarget.Column=3ThenMe.Calendar1.Left=ActiveCell.Left+ActiveCell.ColumnWidth+65Me.Calendar1.Top=Target.TopIfTarget.ValueThenMe.Calendar1.Value=Target.ValueElseMe.Calendar1.Value=Now()EndIfMe.Calendar1.Visible=TrueElseMe.Calendar1.Visible=FalseEndIfEndSub第五步:其他相关设置:1、执行上述代码时,可能会遇到创建宏的提示,随便输入宏名,如日历,创建,确定,再运行即可!2、可以将上述的代码及EXCEL2007文件一起保存,以备不时之需,以后你再需要到这种功能,直接打开EXCEL2007文件即可!3、打开EXCEL2007文件,运行原来的宏,有可能出现“宏”被禁止运行的提示,解决的方法如下:在EXCEL2007操作中执行“开始”左上角图标→“EXCEL选项”→“信任中心”→信任中心设置→宏设置;选择“启用所有宏”选项卡即可!之后关闭EXCEL,再打开,就能运行了!4、日历模板样式设置:开发工具→设计模式→右击日历模板,即可对日历模板进行格式设置5、宏加密,保护表格中的宏:在VBA编辑里面,工具→VBAProject属性→保护,加上密码就不能编辑,删除等。
本文标题:Excel2007中如何实现日历控件
链接地址:https://www.777doc.com/doc-5541540 .html