如何在EXCEL两个单元格内插入日历,个别点击时才显示,选定日期后单元格直接显示时间格式。

参考chaohua008(http://zhidao.baidu.com/question/317691765.html)的方式没法正常使用,请高手帮忙,谢谢
Private Sub Calendar1_Click()
Range("m2:n2") = Calendar1.Value
Calendar1.Visible = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$M$2:$N$2" Then
Calendar1.Visible = True
Else
Calendar1.Visible = False
End If
End Sub

你需要使用Excel的日期控件,并且要懂得一些VBA编程才可以操作日期控件的
看到你的补充了,回复如下:
1.你用的是日历控件Calendar,我不清楚是否和DTP控件的表现一样。
2.你的change程序:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$M$2:$N$2" Then
Calendar1.Visible = False(这里的值需要改成True,才能在M2:N2选中时显示出日历控件)
Else
Calendar1.Visible = False
End If
End Sub
另外,由于没有在程序中移动日历控件,它会固定在一个位置,建议在选中时把它移动到对应的单元格,这样选择日期可以更方便,也更人性化。
祝顺利!追问

谢谢你的回复

依照你指点更改后依然不能正常执行工作,控件错误提示与如下图,请再费心了,谢谢。

第一行与第二行有黄色箭头提示

追答

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 and (Target.Address = "$M$2" OR Target.Address = "$N$2") Then
Calendar1.Visible = True
Else
Calendar1.Visible = False
End If
End Sub
另外,不要漏掉那个else

追问

还是不行,能否请你在工作表上实际操作看看,若能协助我完成正确执行,我再加你20分作为答谢,再次感谢。

追答

好吧,我说了我用的是DTP控件,需要下载安装日历控件,过一会儿啊,我会完善我的回答,分不分的倒是无所谓的
补充:晕,没注意你提示第一第二行出错:
Private Sub Calendar1_Click()
ActiveCell.Value= Calendar1.Value
Calendar1.Visible = False
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-20
你直接插入日期控件并指定单元格,就可以了。
相似回答