我正在尝试隐藏没有数据的列,同时保持数据显示,即使列中只有一个项目。这是我正在使用的代码:
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这样的内容来从该点读取所有内容以确定它是否应该隐藏列?非常感谢您的帮助!
答案 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