Vba 如何在Excel 2010中隐藏基于名称的列?

Vba 如何在Excel 2010中隐藏基于名称的列?,vba,excel,filter,Vba,Excel,Filter,我试图在Excel2010中使用VBA隐藏基于名称的列。我的每个专栏都有一个产品版本和下面的一些结果。产品版本在整个电子表格中重复,因为我已经按操作系统对其进行了分类。因此,我根据选择隐藏多个列,就像过滤器一样。如果我可以根据名称而不是列字母(A、B、C,…)进行隐藏,那么在以后的中间添加列将防止对这些列的位置进行更多的代码更改 我现在正在做的是固定在列字母上。这就限制了我在不必更改代码(列字母)的情况下在两者之间添加列。例如: `If productver_2dot5.Value = True

我试图在Excel2010中使用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”(示例)的列

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
仅供参考,您发布的代码减少为:

Range("E1,M1,AC1,AT1,BD1,BR1").EntireColumn.Hidden = Not productver_2dot5.Value
仅供参考,您发布的代码减少为:

Range("E1,M1,AC1,AT1,BD1,BR1").EntireColumn.Hidden = Not productver_2dot5.Value
仅供参考,您发布的代码减少为:

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

非常感谢。你的两个建议都完美无瑕。非常感谢。你的两个建议都完美无瑕。非常感谢。你的两个建议都完美无瑕。非常感谢。你的两个建议都完美无瑕。