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

使用VBA if语句使用按钮隐藏/取消隐藏列,vba,excel,Vba,Excel,我正在尝试创建一个可点击的切换按钮,如果数据当前未隐藏,则隐藏一年的数据;如果数据已隐藏,则取消隐藏。我知道这种语法是不正确的,但我不知道如何使它工作。任何帮助都将不胜感激 Sub Hide_2012() Dim Yr2012 As Range Set Yr2012 = ThisWorkbook.Worksheets("Open Jobs Calculations").Range("AI:AT") If Yr2012.Visible = False Then Yr2012.V

我正在尝试创建一个可点击的切换按钮,如果数据当前未隐藏,则隐藏一年的数据;如果数据已隐藏,则取消隐藏。我知道这种语法是不正确的,但我不知道如何使它工作。任何帮助都将不胜感激

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
只能在上运行

根据Scott的评论进行编辑:

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

更优雅。

这对我很有用。显然,
hidden
只能在上运行

根据Scott的评论进行编辑:

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)

同样的想法,为了减少打字:)

对@findwindow答案的修改对我来说很有效:

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

另一个相同的想法是减少输入:)

尝试使用
。可见
而不是
。隐藏
缺失
如果
结束。另外,您确定要完整列吗?编辑:
然后
在错误的行上…@Dave我仍然得到整个事情的语法错误。@findwindow我做了那个更改,但是仍然得到了预期的错误,或者用
.Visible
而不是
。Hidden
丢失
如果
结束。另外,您确定要完整列吗?编辑:
然后
在错误的行上……@Dave我仍然得到整个事情的语法错误。@findwindow我做了那个更改,但是仍然得到了预期的错误,或者转到完美!非常感谢。我想你可以用这一行替换IF语句
Yr2012.entireclumn.Hidden=不是Yr2012.entireclumn.Hidden
我想,没有测试过。太好了!非常感谢。我认为可以用这一行替换IF语句
Yr2012.entireclumn.Hidden=Not Yr2012.entireclumn.Hidden
我认为未测试。