在Excel中插入日历控件

 

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(ByValTarget As Range)
If Target.Address = "$A$1" ThenCalendar1.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(ByValTarget As Range)
If Target.Column = 1 Then
Me.Calendar1.Visible = True
Else
Me.Calendar1.Visible = False
End If
End Sub

完成后,运行VBA代码,返回Excel操作窗口,即可实现。

 

Excel中单元格月历下拉选择实现方法

 

 

一、日历控件的使用方法

 

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(ByValTarget As Range)
    IfTarget.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
    ElseIfTarget.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、也可以在打开文件的时候禁用宏,这样就可以正常使用粘贴功能了。