隐藏Excel表格中的所有列,除了一些选定的列

时间:2019-09-11 06:44:41

标签: excel vba

我有一个Excel表ActiveSheet.ListObjects("myTable")。除了更有趣的列,我如何隐藏所有列?现在,我的代码是通过记录宏生成的:

Columns("A:C").Hidden = True
Columns("F:G").Hidden = True
Columns("I:U").Hidden = True
Columns("W:X").Hidden = True
Columns("AA:AI").Hidden = True
Columns("AK:CQ").Hidden = True

由于不太重要的列来去去去或重新排列,我想按名称而不是列字母来引用列。类似于:

ActiveSheet.ListObjects("myTable").ListColumns("#All").Hidden = True
ActiveSheet.ListObjects("myTable").ListColumns("Email").Hidden = False
ActiveSheet.ListObjects("myTable").ListColumns("User").Hidden = False
...

2 个答案:

答案 0 :(得分:1)

因此,根据您编辑过的问题,我认为您正在寻找:

.

答案 1 :(得分:0)

可以通过以下循环轻松完成所需的操作:

Sub hide()
Sub hide()
Dim column As Range
Dim Lastcolumn As Long
Lastcolumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).column
For Each column In ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, Lastcolumn))
If column = "Unhide" Or column = "Unhide also" Then
column.EntireColumn.Hidden = False
Else
column.EntireColumn.Hidden = True
End If
Next
End Sub

对于不想隐藏的每一列,请添加另一个具有更新名称的or语句。

经过编辑可否定使用绝对列,而仅使用已使用的列范围。