如果单元格为空,则隐藏下n行VBA

时间:2017-11-07 00:33:26

标签: excel vba hide rows

在工作表中,“方案”,我试图根据该组行中B列中的单元格值是否包含“未包含”文本来隐藏整行的组。例如,在B19:B77范围内,我有每5行帐户的部分。每个部分的第一行都有帐户名称或“未包含”。如果它说“不包括”,我想隐藏该行和随后的4行(例如,行19到23)。我知道如何根据单元格的值隐藏整行(下面的代码),但我想弄清楚如何隐藏其他行。

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

For循环可能类似于:

Dim r As Long
For r = 19 To 77 Step 5
    Rows(r & ":" r + 4).Hidden = Cells(r, "B").Value = "not included"
Next

注意:77看起来很奇怪。如果所有内容都是5行的组,那么您的上一个"帐户名称"将在第74行,这意味着最后一组似乎只有4行(74到77)。