您好,在此先感谢您提供的任何建议。我已经写了下面的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”时,它会计算所有差异,但当然会以黄色突出显示所有内容。感谢您提供的任何建议。
答案 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