首页 > 解决方案 > 如何隐藏除包含特定值/文本的列之外的所有列?

问题描述

什么是 VBA 宏,我可以使用它来过滤掉不包含特定文本/值字符串的列。在下面的示例中,我从包含一些我不想看到的列的数据开始。我想隐藏所有列,除了包含至少一个具有我想查看的值的单元格的列,在这个例子中,它是“好”数据。

从此开始:

Excel 电子表格图像显示包含任一单元格的四列

以此结束:

Excel 电子表格图像显示三列,其中包含两个单元格

标签: excelhidedisplay

解决方案


我使用了这段代码,重复每一列可能有我想查看的数据。这假设可能重要的数据在第 4 行。有没有更有效的方法?

If Range("A4").Value = "important" Then
    Columns("A").EntireColumn.Hidden = False
Else
    Columns("A").EntireColumn.Hidden = True
End If

If Range("B4").Value = "important" Then
    Columns("B").EntireColumn.Hidden = False
Else
    Columns("B").EntireColumn.Hidden = True
End If

If Range("C4").Value = "important" Then
    Columns("C").EntireColumn.Hidden = False
Else
    Columns("C").EntireColumn.Hidden = True
End If

If Range("D4").Value = "important" Then
    Columns("D").EntireColumn.Hidden = False
Else
    Columns("D").EntireColumn.Hidden = True
End If

If Range("E4").Value = "important" Then
    Columns("E").EntireColumn.Hidden = False
Else
    Columns("E").EntireColumn.Hidden = True
End If

If Range("F4").Value = "important" Then
    Columns("F").EntireColumn.Hidden = False
Else
    Columns("F").EntireColumn.Hidden = True
End If

If Range("G4").Value = "important" Then
    Columns("G").EntireColumn.Hidden = False
Else
    Columns("G").EntireColumn.Hidden = True
End If

If Range("H4").Value = "important" Then
    Columns("H").EntireColumn.Hidden = False
Else
    Columns("H").EntireColumn.Hidden = True
End If

If Range("I4").Value = "important" Then
    Columns("I").EntireColumn.Hidden = False
Else
    Columns("I").EntireColumn.Hidden = True
End If

If Range("J4").Value = "important" Then
    Columns("BJ").EntireColumn.Hidden = False
Else
    Columns("J").EntireColumn.Hidden = True
End If

推荐阅读