Excel 循环行,如果3个单元格符合条件,则高亮显示单元格,如果不符合条件,则隐藏行
我想设置一个电子表格,当您单击一个按钮时,它会查看每行第4列、第7列和第8列中的单元格,如果这三个单元格的条件正确,整行将高亮显示。如果条件不正确,我想隐藏不正确的行 我似乎被困在代码选择要高亮显示的行的地方。我曾尝试使用ActiveCell.EntireRow.Interior.Color,但它只能高亮显示范围内的所有内容,或者在单击按钮之前高亮显示所选单元格的行Excel 循环行,如果3个单元格符合条件,则高亮显示单元格,如果不符合条件,则隐藏行,excel,vba,Excel,Vba,我想设置一个电子表格,当您单击一个按钮时,它会查看每行第4列、第7列和第8列中的单元格,如果这三个单元格的条件正确,整行将高亮显示。如果条件不正确,我想隐藏不正确的行 我似乎被困在代码选择要高亮显示的行的地方。我曾尝试使用ActiveCell.EntireRow.Interior.Color,但它只能高亮显示范围内的所有内容,或者在单击按钮之前高亮显示所选单元格的行 Private Sub CommandButton1_Click() Dim rng As Range: Set rng = Ap
Private Sub CommandButton1_Click()
Dim rng As Range: Set rng = Application.Range("A5:I54")
Dim cell As Range
Dim row As Range
Dim i As Integer
For i = 1 To rng.Rows.Count
If rng.Cells(RowIndex:=i, ColumnIndex:=4).Text = "Yes" And rng.Cells(RowIndex:=i, ColumnIndex:=7).Text = "Yes" And rng.Cells(RowIndex:=i, ColumnIndex:=8).Text = "No" Then
rng.EntireRow.Interior.Color = vbYellow
ElseIf rng.Interior.ColorIndex = vbWhite Then rng.EntireRow.Hidden = True
End If
Next
End Sub
如何让代码识别该行的标准并正确地突出显示该行?如果我了解您的问题,此代码将执行以下操作:
Private Sub CommandButton1_Click()
For i = 5 To 54
If Cells(i, 4) = "Yes" And Cells(i, 7) = "Yes" And Cells(i, 8) = "No" Then
Range(Cells(i, 4), Cells(i, 9)).Interior.Color = vbYellow
ElseIf Cells(i, 4).Interior.Color = vbWhite Then
Cells(i, 4).EntireRow.Hidden = True
End If
Next
End Sub
你可以去掉
ElseIf
你所需要的就是Else:Cells(i,1)。EntireRow.Hidden=True
非常感谢!这很有效。我无法完全理解为什么您的代码在不声明范围的情况下工作。你能给我解释一下吗?@GMalc你可能是对的,从帖子上看,所有非黄色的行都是白色的。但既然他的密码里有白色的支票,我想最好还是留着它。@Moonshine54;通过使用行和列4、7、8和9的5到54
设置范围。他能够使用标准列编号,因为他没有在设定的范围内工作。此外,如果希望向工作表中添加更多行,则需要添加最后一行变量。@Moonshine54您不应该像以前那样声明“cell”和“row”,它们已经是VBA中的对象。在我的代码中,由于我没有指定工作簿和工作表,Excel假定单元格(I,4)为ThisWorkbook.ActiveSheet.Cells(I,4)。您的问题是您正在为标准列编号设置列索引,但您在指定的rng内工作,因此范围的第一列将是1而不是4。