隐藏列标题没有数据的列?

时间:2016-06-23 21:54:06

标签: excel vba excel-vba

我正在尝试隐藏没有数据的列,同时保持数据显示,即使列中只有一个项目。这是我正在使用的代码:

Dim cl as Range

For Each cl In Range("A2:U2")
    If cl.Value = "" Then
        cl.EntireColumn.Hidden = True
    Else
        cl.EntireColumn.Hidden = False
    End If
Next cl

这是有效的,但是我确实将它读取到A2到U2,并根据该行隐藏列,包括那些确实有信息的行。我是否必须添加像xldown这样的内容来从该点读取所有内容以确定它是否应该隐藏列?非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

添加支票

If cl.end (xlDown).Row = ActiveSheet.Rows.Count

答案 1 :(得分:0)

只需从

中替换If条件即可
If cl.Value = "" Then

If Application.WorksheetFunction.CountA(Columns(cl.Column).EntireColumn) = 1 Then

这告诉您整个列中只有一个值。在你的情况下,它应该是标题。

它应该如下所示:

Sub demo()
    Dim cl As Range

    For Each cl In Range("A2:U2")
        If Application.WorksheetFunction.CountA(Columns(cl.Column).EntireColumn) = 1 Then
            cl.EntireColumn.Hidden = True
        Else
            cl.EntireColumn.Hidden = False
        End If
    Next cl
End Sub