我有一个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
...
答案 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
语句。
经过编辑可否定使用绝对列,而仅使用已使用的列范围。