使用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