如果单元格为空,则隐藏接下来的 n 行,VBA
If a cell is blank, hide next n rows, VBA
在工作表中,"Scenarios," 我试图根据该组行的 B 列中的单元格值是否包含文本 "not included" 来隐藏整行组。例如,在 B19:B77 范围内,我每 5 行都有一个帐户部分。每个部分的第一行有帐户名称或 "not included." 如果它显示 "not included," 我想隐藏该行和随后的 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
提前感谢您的帮助!
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 行为一组,您的最后一个 "account name" 将在第 74 行,这意味着最后一组似乎只有 4 行(74 到 77)。
在工作表中,"Scenarios," 我试图根据该组行的 B 列中的单元格值是否包含文本 "not included" 来隐藏整行组。例如,在 B19:B77 范围内,我每 5 行都有一个帐户部分。每个部分的第一行有帐户名称或 "not included." 如果它显示 "not included," 我想隐藏该行和随后的 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
提前感谢您的帮助!
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 行为一组,您的最后一个 "account name" 将在第 74 行,这意味着最后一组似乎只有 4 行(74 到 77)。