excel中实现日期选择输入(日历控件)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
excel中实现日期选择输入(日历控件)推荐
第一种方法:
首先这个控件需要一个名为MSCOMCT2.OCX的控件文件,这个文件大家先在电脑里搜索一下,如果没有的话就求助baidu 喽.
下载下来后把它复制到c:\windows\system32里.
最后就在开始->运行里注册MSCOMCT2.OCX控件.
那么如何注册呢,方法很简单输入regsvr32 MSCOMCT2.OCX就ok拉
这时打开excel控件工具箱点击其它控件找到Microsoft Date and Time Picker Control 6.0,这个东东就是我们要的日期控件拉
第二种方法:MSCAL.OCX
Private Sub Calendar1_Click()
ActiveCell = Calendar1.Value
Me.Calendar1.Visible = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'此处的6和7为你要显示日历的列序号
If Target.Column = 6 Or Target.Column = 7 Then
Me.Calendar1.Left = Target.Left
Me.Calendar1.Top = Target.Top
If Target.Value <> "" Then
Me.Calendar1.Value = Target.Value
Else
Me.Calendar1.Value = Now()
End If
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)
'此处的1为你要显示日历的列序号
If Selection.Rows.Count = 1 And Selection.Columns.Count = 1 And
Target.Column = 1 Then
Me.Calendar1.Left = Target.Left
Me.Calendar1.Top = Target.Top
If Target.Value <> "" Then
Me.Calendar1.Value = Target.Value
Else
Me.Calendar1.Value = Now()
End If
Me.Calendar1.Visible = True
Else
Me.Calendar1.Visible = False
End If
End Sub
Mscomct2.zip
MSCAL.rar
在EXCEL中实现点击日历输入日期
技巧2010-07-07 10:37:58 阅读435 评论0 字号:大中小订阅
1、在某一单元格中插入日历控件
(1)选中要插入日历控件的单元格,设置单元格格式为日期型;
(2)点击工具栏,“插入—对象—日历控件”,
(3)用快捷方式Alt+F11,双击插入控件的工作表名称,粘贴下面的代码,用来实现单击A1时弹出日历控件,单击
日历控件后,将选中的日期值填入A1并隐藏控件。
Private Sub Calendar1_Click()
ActiveCell = Calendar1
Calendar1.Visible = False
[a2].Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Calendar1.Visible = True
End Sub
2、某一列全部设置为插入日历控件。
例如;在C列中,无论点击哪个单元格,就弹出日历控件,选择一个日期后,日期自动插入到单元格;除C列之外,
点击其他单元格,不会弹出日历选择控件;
同上面(1)(2)步后,选择日历控件,双击鼠标,进入代码编辑模式,选择Worksheet和SelectionChange,输入
代码:
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
完成后,运行VBA代码,返回Excel操作窗口,即可实现。
另1:
日历控件的使用方法
1、打开excel文件,以对sheet1的操作为例:点中要插入日期的单元格,
工具栏→插入→对象→选日期空间11.0 →确定。
2、工具栏→工具→宏→Visual Basic 编辑器
在‘通用’加入如下代码:
Private Sub Calendar1_Click()
ActiveCell = Format(Calendar1.Value, "yyyy-mm-dd") '设置日期格式,此工作可以直接通过设置某列单元格格式一
次性完成
Calendar1.Visible = False '单击日历控件后隐藏之
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Then 'D列为日期输入列
Calendar1.Left = Target.Left + Target.Width '设置日历控件弹出后的位置
Calendar1.Top = Target.Top + Target.Height '同上
Calendar1.Value = Date '设置默认日期为系统日期
Calendar1.Visible = True '使日历控件可见
ElseIf Target.Column = 5 Then 'E列为日期输入列
Calendar1.Left = Target.Left + Target.Width
Calendar1.Top = Target.Top + Target.Height
Calendar1.Value = Date
Calendar1.Visible = True
ElseIf Target.Column = 6 Then 'F列为日期输入列
Calendar1.Left = Target.Left + Target.Width
Calendar1.Top = Target.Top + Target.Height
Calendar1.Value = Date
Calendar1.Visible = True
Else
Calendar1.Visible = False '单击其他列时隐藏日历控件
End If
End Sub
保存。
3、设计好后,还可以对日期列进行“设置单元格格式”
4、不足之处
a、要实用该宏,首先要在EXCEL→工具→宏→安全性→选中(在打开文件的时候允许宏)或低,才可以使用
该日期控件;
b、在使用宏控件的时候,excel中鼠标右键的粘贴功能将失效,需要借助EXCEL→编辑→office剪贴板的功能
才能完成单元格复制粘贴的功能;
c、也可以在打开文件的时候禁用宏,这样就可以正常使用粘贴功能了。
另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,再打开,就能运行了!
这个很简单啊,因为你这台电脑没有安装日历控件。
下一个或者拷贝一个注册就行了
1. 下载或者拷贝日历控件1
2.0,或者日历控件11.0等等
下载地址:MSCAL.rar (50.41 KB)
从别的电脑拷贝:路径如下
C:\Program Files\Microsoft Office\OFFICE11\MSCAL.OCX
或者C:\Program Files\Microsoft Office\OFFICE12\MSCAL.OCX
2. 拷贝该控件到没有安装的电脑
C:\WINDOWS\system32目录下
3.在开始菜单“运行”中输入regsvr32 mscal.ocx 回车即可注册成功
这在命令行界面下输入同样的语句效果是一样的。
下载地址:/thread-4310-1-1.html。