我正在尝试使用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”(示例)的列。
答案 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