我正在尝试建立一个包含许多空单元格和许多列的工作表。
基本上,我想过滤一列,然后根据过滤后的值,隐藏在相应的已过滤行中具有空白单元格的列。
下面有一个例子。我们将工作表称为“任务列表”吗?因此,基本上,如果我为Eric过滤B列,则C列,E,G,H列应该被隐藏。然后,取消过滤应取消隐藏这些列。
我对VBA不太了解,但这似乎可能是基于工作表vba的解决方案?
谢谢大家。
答案 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
易于修改以对事件进行操作。