根据可变范围的单元格的内容填充单元格

在我的电子表格中,我有一个包含项目编号的列中的数据列表。 给定相邻单元格中的值(“1 Quad”或任意值AD),在同一列中不应该有重复项号的行或者有重复项号的8行。 如果有多于或less于所需的项目数量(太多的重复数字或错过的数字),那么我想要相同的项目号码的整个variables范围突出显示(我只是用填充)。

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 

有了这段代码,我得到了错误“End If without Block If”,它根本不是这样的情况。 如果我删除了最后一个“End IF”,我收到“Next for For”错误。 提前感谢您的帮助。

**我编辑的代码,包括结束ifs仍然收到相同的错误。

您缺less3个结束符,而您的Do-While语法closures。 试试这个:

  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