- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[转帖]Excel-单击单元格弹出活动日历
2009-12-29 20:26
题记:老同学“芝麻汤圆”发来一个文件,要实现活动日历效果。研究了下文件里的VBA代码,搞定!嘿嘿
方法:
1、右键单击工具栏,选中Visual?? Basic;?? 2、单击工具栏上的“控件工具箱”(小榔头形状);?? 3、单击控件工具箱工具栏上的“其他控件”(小榔头形状);?? 4、找到?? Microsoft?? Date?? And?? Time?? Piker?? Control?? 6.0?? (SP4),选中它;?? 5、在你所要用到的单元格内画出,大小要和单元格一样;?? 6、选中控件,右键单击选择菜单“设置控件格式”,在属性选项中选择“大小固定、位置随单元格而变”,确定;?? 7、右键单击控件选择菜单“查看代码”,进入VBA后,将里面的代码替换为:
一、一个单元格日历代码
Private?? Sub?? DTPicker1_Change()?? ????????? Sheet1.Cells(1,?? 1)?? =?? CStr(DTPicker1)?? End?? Sub?? ??? Private?? Sub?? DTPicker1_Click()?? ????????? Sheet1.Cells(1,?? 1)?? =?? CStr(DTPicker1)?? End?? Sub
备注:Cells()里应为日期单元格的坐标,即第几行,第几列。
二、一列日历代码
Option ExplicitPrivate Sub DTPicker1_Change()??? ActiveCell.Value = DTPicker1.Value??? DTPicker1.Visible = FalseEnd SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)??? With Me.DTPicker1??????? If Target.Column = 2 And Target.Count = 1 Then??????????? .Visible = True??????????? .Width = Target.Width + 15??????????? .Left = Target.Left??????????? .Top = Target.Top??????????? .Height = Target.Height??????? Else??????????? .Visible = False??????? End If??? End WithEnd Sub
备注:“Target.Column = 2”指第2列。如果想在其他列上实现活动日历效果,请将2改为您想要的列值。
三、一行日历代码
Option ExplicitPrivate Sub DTPicker1_Change()??? ActiveCell.Value = DTPicker1.Value??? DTPicker1.Visible = FalseEnd SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)??? With Me.DTPicker1??????? If Target.Row = 7 And Target.Count = 1 Then??????????? .Visible = True??????????? .Width = Target.Width + 15??????????? .Left = Target.Left??????????? .Top = Target.Top??????????? .Height = Target.Height??????? Else??????????? .Visible = False??????? End If??? End WithEnd Sub
备注:“Target.Row = 7”指第7行。如果想在其他行上实现活动日历效果,请将7改为您想要的行值。
8、(使用代码一,需要进行此项目设置)返回到Excel,调整单元格大小使控件完全显示;???9、退出设计模式,OK。
要实现你的要求分三个步骤:
1、在工作表中插入一个日历控件如:microsoft date and time picker 2、在控件的lost focus 事件中加入 以下的代码:cells(5,5)=dtpicker1.value (日历控件的名称为:dtpicker1),每当用户选择了日历控件时,当他退
文档评论(0)