快捷搜索:  汽车  科技

excel制作日历进度表(Excel利用公式制作日历和窗体日历)

excel制作日历进度表(Excel利用公式制作日历和窗体日历)示例还在工作表对象内添加了点击触发宏代码,目的是点击指定位置才会跳出日历。如何制作窗体版日历呢?在宏编辑界面可以插入窗体,然后在窗体内插入一定数量的按钮,为其添加功能性代码即可。IF(MONTH(DATE($B$2 $B$3 1)-WEEKDAY(DATE($B$2 $B$3 1) 2) COLUMN(A:A) (ROW(1:1)-1)*7)<>$B$3 "*" DATE($B$2 $B$3 1)-WEEKDAY(DATE($B$2 $B$3 1) 2) COLUMN(A:A) (ROW(1:1)-1)*7)效果如下:窗体版的控件为了简化代码,是在公式版的基础上进行的升级,使用效果如下:

多数的软件都拥有一个日期控件,比如说在tableau里日期控件是这样的表现形式。

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(1)

其实在Excel里也包含一个日期控件Microsoft Date and Time Picker Control 6.0(SP6)。但是,这个控件并不是所有的版本都会拥有,

本篇介绍如何利用公式制作简单版的Excel日历和利用宏以窗体形式体现日历。

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(2)

公式版的日历比较简单,利用公式:

IF(MONTH(DATE($B$2 $B$3 1)-WEEKDAY(DATE($B$2 $B$3 1) 2) COLUMN(A:A) (ROW(1:1)-1)*7)<>$B$3 "*" DATE($B$2 $B$3 1)-WEEKDAY(DATE($B$2 $B$3 1) 2) COLUMN(A:A) (ROW(1:1)-1)*7)

效果如下:

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(3)

窗体版的控件为了简化代码,是在公式版的基础上进行的升级,使用效果如下:

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(4)

如何制作窗体版日历呢?在宏编辑界面可以插入窗体,然后在窗体内插入一定数量的按钮,为其添加功能性代码即可。

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(5)

示例还在工作表对象内添加了点击触发宏代码,目的是点击指定位置才会跳出日历。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 2 Then UserForm1.Controls("Label8").Caption = Date UserForm1.Controls("ComboBox1").Text = Year(Now()) UserForm1.Controls("ComboBox2").Text = Month(Now()) '开始赋值 j = 1 r = 3 For i = 1 To 42 If i >= 7 And i Mod 7 = 1 Then r = r 1 End If j = i Mod 7 If j = 0 Then j = 7 End If If Sheets("日期").Cells(r j 3) = "*" Then UserForm1.Controls("CommandButton" & i).Caption = "-" Else UserForm1.Controls("CommandButton" & i).Caption = Day(Sheets("日期").Cells(r j 3)) End If Next '赋值结束 UserForm1.Controls("ComboBox1").List = Array("2016" "2017" "2018" "2019" "2020" "2021" "2022" "2023" "2024") UserForm1.Controls("ComboBox2").List = Array("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12") UserForm1.Show False UserForm1.Left = Target.Offset(0 7).Left Else UserForm1.Hide End If End Sub

在窗体内添加窗体按钮代码:

excel制作日历进度表(Excel利用公式制作日历和窗体日历)(6)

猜您喜欢: