隐藏CBool​​列,不工作

有人知道,为什么这个代码不礼貌,并通过未知的规则隐藏我的列?

Sub EmptyCol() Call UnlockS Dim Table As Range: Set Table = Range("O_List") Dim Col As Range Dim Emp As Boolean Dim c As Long 'Table.Columns.hide = False With Table For c = 4 To .Columns.Count Set Col = .Columns(c) If (Application.CountIf(Col, "")) = (.Rows.Count) Then Emp = True .Columns(c).EntireColumn.Hidden = CBool(Emp) Next c End With Call L_ORDER End Sub 

V1

  for c = 1 to .columns.count .columns(c).entirecolumn.hidden = not cbool(application.counta(.columns(c))) 

它从我以前的post编辑的代码,但现在我知道这是行不通的。 它也隐藏了柱子。 Thx为您提供帮助。

我没有看到你把Emp设置为假的地方。 一旦它find了肯定的结果,它会隐藏每一列从这一点。

 Sub EmptyCol() Call UnlockS Dim Table As Range: Set Table = Range("O_List") Dim Col As Range Dim Emp As Boolean Dim c As Long Table.Columns.Hidden = False With Table For c = 4 To .Columns.Count .Columns(c).EntireColumn.Hidden = _ (Application.CountA(.Columns(c)) = 0) Next c End With Call L_ORDER End Sub