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

时间:2015-12-22 21:00:04

标签: excel vba excel-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

2 个答案:

答案 0 :(得分:0)

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

您无需说隐藏价值,只需EntireColumn

答案 1 :(得分:0)

您的代码对我来说非常完美。一切都是正确的。也许是将逻辑改为

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

这更好地调试并理解它为什么工作。通常,如果没有真实数据,很难找到错误。似乎你的错误在你的数据中。请仔细检查或在此处发布您的数据。