使用VBA隐藏基于单元值的列

我正在尝试隐藏基于单元值的列。 这段代码完全可以隐藏行,但是当我尝试操纵它来隐藏列时,它不起作用。 有任何想法吗?

Sub HideColumns() Dim WS_Count As Integer Dim I As Integer Dim cell As Range WS_Count = ActiveWorkbook.Worksheets.Count For I = 1 To WS_Count For Each cell In Sheets(I).Range("P33:Y33") With cell .EntireColumn.Hidden = .Value = "HIDE" End With Next Next I End Sub 

将您的行更改为.EntireColumn.Hidden = True

你不需要说价值是隐藏的,只需要整个EntireColumn

你的代码对我来说是完美的。 一切正确。 也许是一个想法来改变逻辑

 With cell If .Value = "HIDE" Then .EntireColumn.Hidden = True Else .EntireColumn.Hidden = False End If End With 

这是更好的debugging和理解为什么它的工作与否。 一般来说很难find没有真实数据的bug。 似乎你的错误在你的数据里面。 请仔细检查,或在这里发布您的数据。