使用VBA编辑。代码及效果图如下:
Sub 日历()Dim WkName As String
Dim i, j, k, l As Long
Dim strStar As Date
Dim strEnd As Date
strStar = InputBox("日历编辑起始日期", "日历编辑", 腔猛#1/1/2017#)
If strStar <> False Then
strEnd = InputBox("日历编辑终止日期", "日历编辑", #5/1/2017#)
If strEnd <> False Then
WkName = WeekdayName(Weekday(Format(strStar, "yyyy/mm/dd")))
Range("A1") = Year(strStar) & "年" & Month(strStar) & "月"
Range("A1:G1").Merge
Range("A1:G1").HorizontalAlignment = xlHAlignCenter
Range("A2:G2") = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")
For i = 3 To 1000
袜逗t = Month(strStar)
For j = 1 To 7
For k = 1 To 7
If WkName = Cells(2, k) Then
Cells(i, k) = Day(strStar)
Exit For
End If
Next
strStar = strStar + 1
If strStar > strEnd Then
Exit Sub
End If
WkName = WeekdayName(Weekday(strStar))
l = Month(strStar)
If l <> t Then
i = i + 2
Range("A" & i & ":G" & i) = Array("星期日", "星期一", "告圆卖星期二", "星期三", "星期四", "星期五", "星期六")
Range("A" & i - 1) = Year(strStar) & "年" & Month(strStar) & "月"
Range("A" & i - 1 & ":G" & i - 1).Merge
Range("A" & i - 1 & ":G" & i - 1).HorizontalAlignment = xlHAlignCenter
Exit For
End If
If k = 7 Then
Exit For
End If
Next
Next
End If
End If
End Sub
要求:日历在文本框底部显示实现:在窗体中将日历控件放在复合框控件之下,调整大小对齐。然后肆含通过日历控件的visible属性实现日历的显示与隐藏。
功能说明:双击“复合框”显示,再次双击隐藏。在日历上选择日期后,双击日历将选择的日期输入复合框。窗体打开裂拆笑后日历控件默认不显示。
功能代码:
Private
Sub
Calendar1_DblClick()
Me.ComboBox1.Value
=
Me.Calendar1.Value
Me.Calendar1.Visible
=
False
End
Sub
Private
Sub
ComboBox1_DblClick(ByVal
Cancel
As
MSForms.ReturnBoolean)
Me.Calendar1.Visible
=
Not
Me.Calendar1.Visible
End
Sub
Private
Sub
UserForm_Initialize()
Me.Calendar1.Visible
=
False
End
Sub
注:其中“复御棚合框”的控件名称为ComboBox1,日历的控件名称为
Calendar1.
你可以直接新建窗体,拖入一个复合框和一个日历控件,双击窗体后将以上代码复制粘贴到代码区域即可。
第一首先要用Private
Sub
Worksheet_Change(ByVal
Target
As
Range)
触发事件。
第二要用到日期控件:
方法一:先将控件工具箱芦迹调出来。视皮茄图-工具栏-控件工具箱。
在控件工具箱上最下面那个按钮是其他控件,打开它,找到Microsoft
Date
and
Time
Picker
Control,
这个就是日历控件。然后在一个单元格上拖画一个框,日历控件就出来了。
然后在控件工具箱上退出设计模式,日历控件就能使用了。
在你所要用到陪握并的单元格内画出,大小要和单元格一样;
选中控件,右键单击选择菜单“设置控件格式”,在"属性"选项中选择“大小、位置均随单元格而变”,确定;
右键单击控件选择菜单“查看代码”,进入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
返回到Excel,调整单元格大小使控件完全显示;
退出设计模式,OK。如果没有这个控件可以自己去网上下载个控件或者用方法2.
方法2:在EXCEL窗口中执行“
视图
”→“
工具栏
”→“
控件工具箱
”添加“
日历控件
11.0
”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)