Excel 如何使用VBA来制作日历表

Excel 如何使用VBA来制作日历表,第1张

使用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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12212904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存