创建满足特定条件的值范围

时间:2019-05-09 15:01:09

标签: excel vba

我有一个带有工作时间的日历(从上午10:00到下午20:00/8。这样总共有10个小时)。

主要目标是创建满足以下条件的代码:

  1. 一个人最多可以连续工作2天,因此必须清除所有具有非空值的第三个实例。
  2. 它必须忽略所有蓝色和红色的单元格。这些是国定假日或休息日。只有绿色和白色单元格可以包含值。
  3. 总工作时间必须等于或略高于/高于A38单元格。

我的实际代码将值放在白色和绿色单元格中,但是我不确定如何更新代码,以便满足所有其他条件。

我的代码如下:

Sub put_values()

With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

Dim rn As Range

For Each rn In Range("D2:D38").SpecialCells(xlCellTypeVisible)
    If rn.Interior.Color = RGB(255, 255, 255) Or rn.Interior.Color = RGB(198, 224, 160) Then
        rn.NumberFormat = "h:mm;@"
        rn.Value = "10:00"
        rn.Offset(0, 1).NumberFormat = "h:mm;@"
        rn.Offset(0, 1).Value = "20:00"
        rn.Offset(0, 2).NumberFormat = "0"
        rn.Offset(0, 2).Value = 10
    End If
Next rn

With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With

End Sub

具有实际和预期结果的示例文件链接位于下面的链接中: nbagg backend

0 个答案:

没有答案