如何在Excel 2010中根据名称隐藏列?

时间:2014-05-09 20:09:55

标签: excel vba excel-vba filter

我正在尝试使用Excel 2010中的VBA基于名称隐藏列。我的每个列都有一个产品版本,下面有一些结果。产品版本在整个电子表格中重复,因为我按操作系统进行了分类。因此,我根据选择隐藏了多个列,就像过滤器一样。如果我可以根据名称而不是列字母(A,B,C,...)进行隐藏,那么将来在两者之间添加列会阻止对这些列的位置进行更多的代码更改。

我现在正在做的是固定在专栏信中。这限制了我的意思是我无法在不更改代码(列字母)之间添加列。例如:

`If productver_2dot5.Value = True Then
   Columns("E").Hidden = False
   Columns("M").Hidden = False
   Columns("AC").Hidden = False
   Columns("AT").Hidden = False
   Columns("BD").Hidden = False
   Columns("BR").Hidden = False
Else
   Columns("E").Hidden = True
   Columns("M").Hidden = True
   Columns("AC").Hidden = True
   Columns("AT").Hidden = True
   Columns("BD").Hidden = True
   Columns("BR").Hidden = True
End If`

我想要做的是在其中一个单元格中隐藏任何包含名称“Product Ver 2”(示例)的列。

1 个答案:

答案 0 :(得分:3)

Sub HideBlahs()
    Dim col As Range
    For Each col In ActiveSheet.UsedRange.Columns
         If Application.CountIf(col, "blah") > 0 Then
             col.EntireColumn.Hidden = True
         End If
    Next col
End Sub

仅供参考,您发布的代码缩小为:

Range("E1,M1,AC1,AT1,BD1,BR1").EntireColumn.Hidden = Not productver_2dot5.Value