VBA 代码根据单元格 A1 中的文本自动隐藏行

VBA 代码根据单元格 A1 中的文本自动隐藏行

我似乎无法让该工作表的代码正常工作。

我这里有运行良好的代码,它会根据范围内的单元格是否为空来隐藏行。

不过,我想根据单元格 A1 中的值另外隐藏两行。

目前我有以下情况:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A6:A9")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

然后我想添加以下内容的组合:

If Range("A1") = "CODE 4 - ERROR" Then

    Rows("35").EntireRow.Hidden = False    
Else
    Rows("35").EntireRow.Hidden = True
End If
        If Range("A1") = "CODE 5 - INCONSISTENCY" Then
    Rows("35").EntireRow.Hidden = False
Else
    Rows("35").EntireRow.Hidden = True
End If
    If Range("A1") = "CODE 1 - PASS" Then
    Rows("35:36").EntireRow.Hidden = False
Else
    Rows("35:36").EntireRow.Hidden = True
End If

但我似乎无法让后者单独工作或与上述工作结合工作。有什么建议吗?

答案1

欢迎!

据我所读和理解的代码,第 35 行和第 36 行的正常状态是“隐藏”。如果是 CODE 4 或 CODE 5,则应显示第 35 行;如果是 CODE 1,则应同时显示第 35 行和第 36 行,对吗?

我会这样写:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A6:A9")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
        Rows("35:36").EntireRow.Hidden = True
        If ((Range("A1") = "CODE 4 - ERROR") Or (Range("A1") = "CODE 5 - INCONSISTENCY")) Then
            Rows("35").EntireRow.Hidden = False
        ElseIf (Range("A1") = "CODE 1 - PASS") Then
            Rows("35:36").EntireRow.Hidden = False
        End If
    Application.ScreenUpdating = True
End Sub

相关内容