如何实现在excel2007中控件插入日期

发布时间:2015-08-13 15:55:06

1. 新建一个excel,然后要确保宏是打开的,我的是2007,点开发工具->安全性在弹出界面选择启用所有宏,点击确定。

2. 新建,或者找到你需要编辑的表单,选择你要放置日期的那一列,设置这列的数据格式为日期,然后具体怎么显示,你可以自己选一种,而且做好了以后自己也可以再修改,只不过先选好了舒服一些。

3. 开始真正的工作了,找到开发工具->插入->选择最后如红圈内的图标,就是其他控件,日期控件是系统默认自带的一个控件。

4. 上一步点击之后,会弹出一个对话框,列出系统内所有可用的控件,把滚动条一直拖到最后,我的2007默认就有时间控件,如下图,双击选择这个控件(或者单击选择后点确定)。

5. 上一步之后,你随便在表单页面的任何位置点一下,就会在表单界面弹出日期控件了,如下图,这个控件是可以随便拖着跑的,而且编辑完成后它不会出现在表单界面的,只有你要输入日期的时候才会出现。

6. 现在,控件已经激活了,你需要告诉excel你要在那些地方用这个控件,就要vba编程了。具体就是,在你刚刚调出的日期控件界面上任意位置双击,注意,不是在表单上双击,是在日期控件的上面任意位置双击,就调出vba编辑环境了。

7. 在弹出的界面上会有一段代码,把这段代码删除,然后,把下面这段代码拷贝进去:

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

==========华丽的分割线,分割线以下为注解,不要拷贝===========

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 注意,这里是关键,你想第几列是日期,就把第几列的数字替换数字1,对应的A=1B=2C=3D=4以此例推。

Me.Calendar1.Visible = True

Else

Me.Calendar1.Visible = False 这句就是其他情况下都是控件不可见,不激活。

End If

End Sub 结束。当你把这段代码拷贝进去后,红款内的内容会自动变成上图的样子,系统会知道你要对本worksheet就是本张表单进行一个selectionchange的动作,就是我选一个单元格会自动调用某个功能,产生变化。

8. 好了,差不多大功告成了。现在,你需要点击运行符号,运行这段宏,但是由于这段宏还没有保存,所以,系统会弹出一个对话框,要求你这段宏起个名字。按照步骤,起个名字,然后点击创建。点击之后,会弹出一个新的vba编辑窗口,系统的意思是你是不是要再来编个宏??不理她。

9. 以上步骤做完了,这个宏就创建完毕了,但是,还要运行这个宏才行,要不还是不好用。先做个保存吧,在这个界面点击保存按钮,会有如下图的警告,你就点击是就行了,不用理他。

10. 该做的做完了,把所有的vba窗口都关掉就行了。回到表单界面。就是这个样子。这时候,点击宏按钮。

11. 点击完宏按钮后,系统会弹出一个对话框,列出系统中现有的所有宏,目前只有一个,就是刚才我们编辑的那个,默认就是选择这个宏的,然后点击执行,哈哈,终于完事了,你看到了一个好像什么都没有发生的界面,但是,现在,只要你在你设定的那一列的任意一个单元格上点击鼠标,日期控件就会弹出来,你随便选择一个日期填进去就好了。最后,千万别忘记保存了哈。

如何实现在excel2007中控件插入日期

相关推荐