使用VBA从单元中减去2小时

时间:2014-11-27 14:14:11

标签: excel vba time

我需要以这样的方式搜索列:如果列中的值是“Soccer”,则应该在第5列中将时间调整2小时(从第5列中的当前时间减去两小时)。第5列中的格式为dd / mm / yyyy hh:mm。

我正在努力减去两个小时,并用VBA的新时间替换。

有什么想法吗?

KP

2 个答案:

答案 0 :(得分:0)

检查此公式,可以在GOOGLE上轻松获取。

=IF(UPPER(A1)="SOCCER",E1-(2/24),"No change")

其中,

  1. A1是包含" SOCCER"
  2. 的列
  3. E1是包含"时间"
  4. 的列

答案 1 :(得分:0)

TimeSerial(<hours>, <minutes>, <seconds>) VBA功能可以快速创建您轻松设置的时间值。它等同于本机工作表TIME(<hour>, <minutes>, <seconds>)函数。

Dim rw As Long
With ActiveSheet
    For r = .Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
        If CBool(InStr(1, .Cells(r, "B").Value, "soccer", vbTextCompare)) _
          And IsDate(.Cells(r, 5).Value) Then _
            .Cells(r, 5) = .Cells(r, 5).Value - TimeSerial(2, 0, 0)
    Next r
End With

我已经检查了B栏是否使用足球(例如足球,足球妈妈,足球比赛,室内足球等)。在电池回溯2小时之前,第5栏(E:E)需要有一个日期。