Excel中输入日期时自动弹出日历控件
1、在Excel中输入日期时,如果能自动弹出一个日历控件协助输入,那真是一件美事!不仅为了提高工作效率,更能给人一个惊喜,惊喜之余消除了工作疲劳,真是一举多得!。

2、方法很简单,跟我来动手做就好!

1、插入一个用户窗体:
打开一个Excel文档-->右击工作表标签-->查看代码-->在打开的VBA窗口中工程窗口的空白处右击-->插入-->用户窗体。

2、定制用户窗体、插入日历控件:
把窗体名称改成”F1“便于编程,窗体标题改成”日历“,从工具箱中选日历控件拖到窗体中,调整好位置和大小,调整好用户窗体的大小。可随时按F5查看效果。
如果找不到工具箱,可从视图菜单中打开;如果工具箱中没有日历控件,可右击工具箱空白处添加。

1、现在需要考虑:当点击图中表色的单元格时,如何才能激活前面设计好的日历控件呢?

2、下面这段程序的作用就是:当点击标色单元格时,激活日历控件。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Row >= 2 And Target.Row <= 10 And Target.Cells.Count = 1 Then '设置激活单击事件的单元格范围。
F1.Show
Cells(Target.Row, Target.Column + 1).Select
End If
Application.EnableEvents = True
End Sub
在vba窗口中,双击sheet1对象,把这段程序复制到右面的代码窗口中。

1、在vba窗口中,双击用户窗体F1,再双击右面的日历控件,在打开的代码窗口中下面的代码复制进去。
Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
Unload F1
End Sub
这段代码的作用是将日历控件的日期值赋给刚才点击的单元格。
2、在日历控件的代码窗口中添加下面的程序代码。
Private Sub UserForm_Activate()
F1.Top = Selection.Top + Calendar1.Height / 2
F1.Left = Selection.Left + Selection.Width + 30
End Sub
这段代码的作用是设置日历控件窗口的位置。
