应用过滤器后隐藏列的宏

时间:2018-06-14 17:44:37

标签: excel vba excel-vba

所以我有一个基于不同标准的过滤器,如'state'和'year'。我希望能够过滤数据,然后让宏隐藏所有空列。我当前的宏只隐藏完全为空的列。我希望能够按'年'过滤,然后使用宏来隐藏所有空列,即使有过滤器隐藏的数据。

Sub HideColumns()

Dim col As Range
For Each col In Columns("Q:KN")
If Application.Count(Range(Cells(6, col.Column), Cells(168, col.Column))) = 0 Then
col.Hidden = True
End If
Next

End Sub


Sub UnhideColumns()

Columns("Q:KN").Hidden = False

End Sub

1 个答案:

答案 0 :(得分:1)

.SpecialCells(xlCellTypeVisible)属性将"制作"由非隐藏单元组成的范围。试试这个:

If Application.Count(Range(Cells(6, col.Column), Cells(168, col.Column)).SpecialCells(xlCellTypeVisible)) = 0 then