根据单元格值隐藏或取消隐藏行的 VBA 代码

根据单元格值隐藏或取消隐藏行的 VBA 代码

这是我的代码,但它实际上并没有做任何事情,我没有发现它有什么问题:

Private Sub PG1(ByVal Target As Range)
    If .Range("E50").Value = "Passed" Then
        Rows("51").EntireRow.Hidden = True
    End If
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51").EntireRow.Hidden = True
    End If
End Sub

我的目的是当从下拉菜单中将上一行中的特定单元格设置为“通过”时,就会出现下面的一行,如果是“失败”,那么它将被隐藏。

答案1

看起来你的代码中有一些拼写错误。你想要的是这样的:

Sub PG1()

    If Range("E50").Value = "Passed" Then
        Rows("51:51").EntireRow.Hidden = True
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51:51").EntireRow.Hidden = False
    End If

End Sub

要在更改工作表时更新行隐藏/取消隐藏,请将其放入事件中Worksheet_Change

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("E50").Value = "Passed" Then
        Rows("51:51").EntireRow.Hidden = True
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51:51").EntireRow.Hidden = False

    End If
End Sub

答案2

没有拼写错误。“rows(51)”有效。但你不需要“entirerow”修饰符

rows(n).hidden=true    ; where n is an valid row number

隐藏多行

 range(rows(n1),rows(n2)).hidden=true ; will hide rows n1 though n2

答案3

Private Sub PG1()
    Range("$E$51").EntireRow.Hidden = (Range("$E$50").Value = "Passed")
End Sub

相关内容