Excel过滤/隐藏使用dynamicmacros的列

我有一个电子表格,其数量非常庞大,数以百计的列或数千行,我有能力checkbox以确定显示的列。 问题是我现在想要根据单元格的值将列分组到每列的顶部(第10行)。 这将允许类别是dynamic的,并且将允许项目从一个类别改变到另一个,并且基于该类别的checkbox状态被隐藏或显示。

我目前在macros中的代码允许checkbox在每个团队中隐藏和可见之间切换。 他们目前分组为20,我想要消除20的静态分组,并用第10行的单元格包含类别的列数组replace(在本例中,目前为“Team 1”。

Sub Team1() Set target = Range("B1") If target.Value = "TRUE" Or target.Value = "True" Then ActiveSheet.Columns("F:Y").EntireColumn.Hidden = False ElseIf target.Value = "FALSE" Or target.Value = "False" Then ActiveSheet.Columns("F:Y").EntireColumn.Hidden = True End If End Sub 

您可以使用For循环来检查每个Columns Row 10值,然后相应地设置整个entireColumn属性:

 Sub Team1() Dim target As Range Dim checkCell As Range Set target = Range("B1") For Each checkCell In Range("F10:Y10").Cells checkCell.EntireColumn.Hidden = (LCase(target.Value) = "true" And checkCell.Value = "Team 1") Next checkCell End Sub 

For Each循环将遍历F10:Y10 range每个cell

没有必要IF... Then在这里.Hidden有一个true/false任务。 根据这两个条件, (LCase(target.Value) = "true" And checkCell.Value = "Team 1")将返回TrueFalse