根据列中的值自动隐藏/取消隐藏所有行

根据列中的值自动隐藏/取消隐藏所有行

我有“sheet2”,其中的数据取决于“sheet1”中输入的内容。填充的数据是“N/A”或特定语句。

在 sheet2 中,我希望 G 列中任何带有“N/A”的行都自动隐藏,如果 sheet1 中的数据发生变化导致“N/A”发生变化,则这些行将取消隐藏。

我知道 VBA 可能是我的答案,但我没有使用这些知识/经验。

答案1

因为您希望 Excel 在指定列包含 #NA 错误/值时自动隐藏和取消隐藏行/列。因此在这种情况下,VBA(宏)是最佳且方便的解决方案。

在工作表 2 中输入此代码作为标准模块。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim rng As Range
    Dim cl As Range

    Application.ScreenUpdating = False
    Set rng = [H2:H25]
    For Each cl In rng
        If IsError(cl) Then
            cl.EntireColumn.Hidden = cl = CVErr(xlErrNA)
        Else
            cl.EntireColumn.Hidden = cl = ""
        End If
    Next
    Application.ScreenUpdating = True
End Sub

笔记:

  • 根据需要调整代码中的单元格引用。
  • 我的建议是不要隐藏/取消隐藏行,而是仅处理公式列。
  • 要隐藏行,cl.EntireColumn.Hidden请用替换cl.EntireRow.Hidden

答案2

试试这个..输入公式..

H1 --> =IF(G1="N/A",0,1)
H2 --> =IF(G2="N/A",H1,H1+1)
J1 --> =IFERROR(INDEX(G:G,MATCH(I1,H:H,0)),"")

将 H2 + J1 向下拖动。一些运行数字。

I1 --> 1
I2 --> 2
I3 --> 3
I4 --> 4 and so on..

希望 J 栏就是你要找的。。(:

相关内容