没明白你的换算关系,试着做了一下: Sub ww() Dim arr, F%, arrt arr = Range("a1:d4") For i = 1 To 4 F = Minute(arr(i, 1)) If Val(Right(F, 1)) < 5 Then arr(i, 1) = arr(i, 1) + TimeSerial(0, 20 - Val(Right(F, 1)), 0) arr(i, 3) = Format(arr(i, 3) + TimeSerial(0, 20 - Val(Right(F, 1)), 0), "hh:mm") Else arr(i, 1) = arr(i, 1) + TimeSerial(0, 30 - Right(F, 1), 0) arr(i, 3) = Format(arr(i, 3) + TimeSerial(0, 30 - Val(Right(F, 1)), 0), "hh:mm") End If arrt = Split(arr(i, 4), "~") arr(i, 4) = Format(arrt(0), "hh:mm") & "~" & Format(arrt(1), "hh:mm") [a13].Resize(4, 4) = arr Next End Sub |