使用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
你可以这样做:
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
据推测,如果第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
如果不指定范围,则“行”和“列”范围引用整个电子表格。
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