自动标记周六日-自动标记周末

大家好,我是捌贰春秋VBA 。有些公司还在使用纸质考勤表,每个月都要重新设计考勤表,计算本月天数以及每天对应的星期 。今天带大家用字典及日期函数等相关知识,制作动态考勤表,并自动标记周六日 。

自动标记周六日-自动标记周末

运行结果
功能介绍
1、选择年份和月份 , 获取本月天数(Day函数) 。
2、数组第一行写入日期,数组第二行写入星期,Format(日期,"aaa") 。
3、若数组第二行(即星期)为“六”或者”日“,则标记单元格底色为黄色,字体颜色为红色 。
代码
Private Sub CommandButton1_Click()
On Error Resume Next
Dim arr(), i%, n%
With Range("A1")
.Resize(1, 33).Merge
.Value = "https://www.itzhengshu.com/wps/***公司" & Me.月.Value & " 月考勤表"
.Font.Size = 22
End With
With Range("C2").Resize(2, 31)
.ClearContents
.Interior.ColorIndex = 0
.Font.Color = vbBlack
End With
n = Day(DateSerial(Me.年.Value, Me.月.Value1, 1) - 1)
ReDim arr(1 To 2, 1 To n)
For i = 1 To n
arr(1, i) = i
arr(2, i) = VBA.Mid(Format(Me.年.Value & "-" & Me.月.Value & "-" & arr(1, i), "aaa"), 2, 1)
'标记周六日
If arr(2, i) = "六" Or arr(2, i) = "日" Then
With Cells(2, 2i).Resize(2, 1)
.Interior.Color = vbYellow
.Font.Color = vbRed
End With
End If
Next i
Range("C2").Resize(2, n) = arr
【自动标记周六日-自动标记周末】End Sub

相关经验推荐