我已经重新排列了这些列并且没有使用所有这些列,因为我不确定其中一些与手头的问题有什么关系。 A、B、C 和 D 列是输入。我将“优先级”值从是/否更改为真/假。 “查找周”按钮激活以下宏以填充 E 列。
Sub findweek()
Dim absence As Integer: Dim week As Byte
Range("E2:E100").ClearContents
absence = 2 'find the first absence in column A
week = 2 'find the first week in column B
Do While Cells(absence, 1) <> 0 'loop through the absences in column A
Do While Cells(week, 4) <> 0 'loop through weeks in column B
'compare the date in column A to the begining of week in column B
If Cells(absence, 1) > Cells(week, 4) Then
week = week + 1
ElseIf Cells(absence, 1) = 0 Then
Exit Do
Else
Cells(week - 1, 5) = Cells(absence, 1): absence = absence + 1: week = 2
End If
Loop 'count until you run out of "Mondays"
Exit Do
Loop 'count until you run out of "dates"
End Sub
F 列的值由以下内容填写:
=IF(E2="",1,IF(VLOOKUP(E2,$A$2:$C$100,3,FALSE)=TRUE,2,0))
单元格 G1 对 F 列中的值求和
我希望这能让您了解如何设置项目。