高级批量计算

时间:2014-05-02 10:13:24

标签: excel

我有一个包含列的表:

开始时间(A) - 结束时间(B) - 休息(C)

现在我在A,B和C中有不同的值,并且所有这些值都是手动输入的(由于限制要么具有值或公式,我无法更改它们)。 现在我想进行批量操作

  1. 检查 C 的值是否低于最低值
  2. 如果是,则将其设置为a 至少并将其距离的一半加到 A B
  3. 的最小值

    示例 - 输入(最小值 01:00

    10:00 - 20:00 - 00:00
    11:00 - 22:00 - 01:00
    09:00 - 19:00 - 00:30
    

    示例 - 输出

    10:30 - 20:30 - 01:00
    11:00 - 22:00 - 01:00
    09:15 - 19:30 - 01:00
    

    我听说过脚本可以在Excel中运行,但只找到了一些示例,而那些少量的示例没有很好的文档记录!

    先谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

尝试使用此宏:

Sub TimeFixer()
    Dim N As Long, a As Date, b As Date
    Dim c As Date, e As Date, delta As Date
    Dim incr As Date
    incr = TimeSerial(1, 0, 0)
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To N
        If Cells(i, "C").Value < incr Then
            delta = (incr - Cells(i, "C").Value) / 2
            Cells(i, "C").Value = incr
            Cells(i, "A").Value = Cells(i, "A").Value + delta
            Cells(i, "B").Value = Cells(i, "B").Value + delta
        End If
    Next i
End Sub