根据单元格值隐藏行

时间:2020-09-21 09:24:25

标签: excel vba

如果多个单元格中的值等于0,我想隐藏一行。我尝试了此VBA代码,它“有效”,但最后没有隐藏具有0的行。

Sub Rehien_ausblenden()
    Dim i As Integer
    Application.ScreenUpdating = False
    Worksheets("Daten").Activate
    For i = 12 To 45
        If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
        And Cells(i, 9).Value = 0 And Cells(i, 10).Value Then
          Rows(i).EntireRow.Hidden = True
        End If
    Next
        MsgBox ("Completed")
        Application.ScreenUpdating = True
 
End Sub

2 个答案:

答案 0 :(得分:0)

And Cells(i, 10).Value Then可能缺少= 0吗?请检查And Cells(i, 10).Value = 0 Then是否有效。

我还建议进行以下更改:

请注意,您的代码仅隐藏行,而从不取消隐藏任何内容。因此,即使您多次运行此命令,即使if语句不再为真,任何隐藏的行也将始终保持隐藏状态。

Sub Rehien_ausblenden()
    Application.ScreenUpdating = False

    With ThisWorkbook.Worksheets("Daten")
        Dim i As Long
        For i = 12 To 45
            If .Cells(i, 7).Value = 0 And .Cells(i, 8).Value = 0 _
               And .Cells(i, 9).Value = 0 And .Cells(i, 10).Value = 0 Then
                .Rows(i).EntireRow.Hidden = True
            End If
        Next i
    End With

    MsgBox "Completed"
    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

正如Ren所提到的,您确实需要按以下步骤更正代码:

        If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
        And Cells(i, 9).Value = 0 And Cells(i, 10).Value = 0 Then

(在第10列的单元格中添加 = 0

此外,我想通知您,未在单元格中填充值也会导致单元格值为零:在我的情况下,我仅在第12行中填充了值0,其余均为空白但仍然隐藏了从12到45的所有行。