使用VBA if语句用button隐藏/取消隐藏列

我试图创build一个可点击的切换button,隐藏一年的价值的数据,如果它是当前隐藏,并取消隐藏它,如果它隐藏。 我知道这个语法是不正确的,但我不知道如何使其工作。 任何帮助,将不胜感激。

Sub Hide_2012() Dim Yr2012 As Range Set Yr2012 = ThisWorkbook.Worksheets("Open Jobs Calculations").Range("AI:AT") If Yr2012.Visible = False Then Yr2012.Visible = True Else If Yr2012.Visible = True Then Yr2012.Visible = False End If 

这对我有用。 显然hidden只适用于整个列 。

 Dim Yr2012 As Range Set Yr2012 = ThisWorkbook.WorkSheets("Open Jobs Calculations").Range("A1:B10") 'change range If Yr2012.EntireColumn.Hidden = False Then Yr2012.EntireColumn.Hidden = True ElseIf Yr2012.EntireColumn.Hidden = True Then Yr2012.EntireColumn.Hidden = False End If 

编辑每个斯科特的评论:

 Yr2012.EntireColumn.Hidden = Not Yr2012.EntireColumn.Hidden 

更优雅。

@ findwindow的答案的这种修改为我工作:

 Set Yr2012 = ThisWorkbook.Worksheets("Open Jobs Calculations").Columns("AI:AT") ' <- (ie, set range to the desired columns) 

那么你仍然可以参考“Yr2012”范围,而不需要“.EntireColumn”:

 If Yr2012.Hidden = False Then ... 

只是另一个采取相同的想法,减less打字:)