使用VBA隐藏列

时间:2015-07-31 23:13:50

标签: excel vba excel-vba

如果Row(8:8)符合某些条件,我目前正在尝试隐藏某些列。我的For Each循环目前无效。有人能指出我正确的方向吗?

Sub hide()
' hide Macro
'
Dim rng As Range

    For Each rng In Range("F:BJ").Columns
        If Rows.Range("8") = "Test" Or Rows.Range("8") = "Test1" Then
            Column.rng.EntireColumn.Hidden = True
        End If

    Next rng
End Sub 

3 个答案:

答案 0 :(得分:3)

你可以这样做:

Dim rng As Range
For Each rng In Range("F8:BJ8")

    If rng.Value = "Test" Or rng.Value = "Test1" Then
        rng.EntireColumn.Hidden = True
    End If

Next rng

答案 1 :(得分:2)

据推测,如果第8行中的值以编程方式或其他方式更改,您可能希望取消隐藏列。

Dim rng As Range
With Worksheets("Sheet1")
    For Each rng In .Range("F8:BJ8")
        rng.EntireColumn.Hidden = _
            CBool(LCase(rng.Value) = "test" Or LCase(rng.Value) = "test1")
    Next rng
End With

答案 2 :(得分:1)

如果未指定范围,则行和列范围将指向整个电子表格。

Sub hideColumn()

    Dim rng As Range

    For Each rng In Range("F:BJ").Columns
        If rng.Rows(8) = "Test" Or rng.Rows(8) = "Test1" Then
            rng.EntireColumn.Hidden = True
        End If
    Next rng

End Sub