根据过滤器向右隐藏空列

时间:2019-03-18 16:13:16

标签: excel vba

我正在尝试建立一个包含许多空单元格和许多列的工作表。

基本上,我想过滤一列,然后根据过滤后的值,隐藏在相应的已过滤行中具有空白单元格的列。

下面有一个例子。我们将工作表称为“任务列表”吗?因此,基本上,如果我为Eric过滤B列,则C列,E,G,H列应该被隐藏。然后,取消过滤应取消隐藏这些列。

我对VBA不太了解,但这似乎可能是基于工作表vba的解决方案?

Example 谢谢大家。

1 个答案:

答案 0 :(得分:1)

这假定您没有数据低于过滤后的数据。

首先设置过滤器,然后运行:

Sub HideStuff()
    Dim i As Long
    Columns.Hidden = False
    For i = 3 To 9
    If Application.WorksheetFunction.Subtotal(3, Columns(i).Cells) = 1 Then
        Columns(i).Hidden = True
    End If
    Next i
End Sub

注意:

我们针对 1 进行测试,因为唯一的可见数据(在候选列中)应该是 header
易于修改以对事件进行操作。