时间的条件格式

时间:2018-09-07 16:02:35

标签: excel vba

您好,在此先感谢您提供的任何建议。我已经写了下面的VBA代码,无法识别> = 20min或<20min的时间。基本上,我要开始工作的是彼此减去两个时间值,在一个单元格中获得差值,然后突出显示> = 20分钟黄色和<20min红色的任何单元格。我已经将代码设置为向下迭代行,因此不确定是否是问题所在。参见下面的代码。

Sub Calculations()

Dim i As Integer
i = 2

Do While Cells(i, 1) <> ""
Cells(i, 7).Value = Cells(i, 2).Value - Cells(i, 1).Value


If Cells(i, 7).Value >= 0.0138 Then
Cells(i, 7).Font.ColorIndex = True
Cells(i, 7).Font.ColorIndex = 3
   ElseIf Cells(i, 7).Value < 0.0138 Then
   Cells(i, 7).Font.ColorIndex = 1
   Cells(i, 7).Interior.ColorIndex = 27

   i = i + 1
   End If
   Loop

   End Sub

因此,到目前为止,它仅向下计算到某一行,然后锁定,这给了我一个运行时错误“ ColorIndex”(找不到对象)。我尝试使用0.0138代表20分钟,但仍然没有运气。注意:当我输入值“ 20”时,它会计算所有差异,但当然会以黄色突出显示所有内容。感谢您提供的任何建议。

1 个答案:

答案 0 :(得分:0)

如果差异少于20分钟,您的循环只会增加i。将i = i + 1移至If ... ElseIf ... End If之外。

Do While Cells(i, 1) <> ""

    Cells(i, 7).Value = Cells(i, 2).Value - Cells(i, 1).Value

    If Cells(i, 7).Value >= timeserial(0, 20, 0) Then
        Cells(i, 7).Font.Bold = True
        Cells(i, 7).Font.ColorIndex = 3
   ElseIf Cells(i, 7).Value < timeserial(0, 20, 0) Then
       Cells(i, 7).Font.ColorIndex = 1
       Cells(i, 7).Interior.ColorIndex = 27
   End If

   i = i + 1

Loop