在我的电子表格中,我有一个包含项目编号的列中的数据列表。给定相邻单元格中的值("' 1 Quad"或任何值A-D),在同一列中不应存在具有重复项目编号的行或具有重复项目编号的8行。如果项目编号多于或少于所需数量(重复数字或错过的数字太多),那么我希望突出显示相同项目编号的整个可变范围(我只是使用Fill)。
For i = 3 To (mainRow - 1)
k = i
j = i
If Range("G3") = "'1 Quad" Then
If Range("E" & i).Value > (Range("E" & (i + 1)).Value - 1) Then
Range("E" & i, "E" & (i + 1)).Interior.Color = RGB(255, 0, 0)
i = i + 1
End If
If Range("E" & i).Value < (Range("E" & (i + 1)).Value - 1) Then
Range("E" & i, "E" & (i + 1)).Interior.Color = RGB(0, 255, 0)
i = i + 1
End If
ElseIf Range("G3").Value = "A" Or "B" Or "C" Or "D" Then
Do
If Range("E" & j).Value = Range("E" & (j + 1)).Value Then
j = j + 1
End If
If Range("E" & j).Value <> Range("E" & (j + 1)).Value Then
If j < 8 Then
For k = i To j
Range("E" & i).Interior.Color = RGB(255, 0, 0)
Next k
End If
If j > 8 Then
For k = i To j
Range("E" & i).Interior.Color = RGB(0, 255, 0)
Next k
End If
Exit Do
End If
While j < (mainRow - 1)
i = k
End If
Next i
使用此代码,我收到错误&#34;结束如果没有阻止如果&#34;根本不是这种情况。如果我删除最后一个&#34;结束IF&#34;,我会收到&#34;下一个没有For&#34;错误。提前谢谢你的帮助。
**我编辑了代码以包含结尾ifs并仍然收到相同的错误。
答案 0 :(得分:2)
您缺少3个结束If,并且您的Do-While语法已关闭。试试这个:
Do While j < (mainRow - 1)
If Range("E" & j).Value <> Range("E" & (j + 1)).Value Then
If j < 8 Then
For k = i To j
Range("E" & i).Interior.Color = RGB(255, 0, 0)
Next k
Exit Do
End If
If j > 8 Then
For k = i To j
Range("E" & i).Interior.Color = RGB(0, 255, 0)
Next k
Exit Do
End If
End If
Loop