在Excel中编程选项button来运行两个不同的macros或操作

简单的问题,我似乎无法得到正确的:我已经build立了一个隐藏了一些单元格,另一个显示同样的单元格的macros。 当我独立运行它们时,它们工作正常。 但我想设置一个选项button或将运行这两个macros的checkbox。 例如:如果该框被选中,则显示单元格,如果未选中,则隐藏它们。

我只能点击一个macros,但是这不起作用,因为它没有考虑到button的状态。 我尝试了一个IF,就像这样:

Private Sub CheckBox2_Click() If CheckBox2.Value = True Then Columns("Q:R").Select Selection.EntireColumn.Hidden = True Range("A2").Select Else Columns("Q:R").Select Range("R1").Activate Selection.EntireColumn.Hidden = False Range("A2").Select End If End Sub 

我究竟做错了什么? 提前致谢!

试试这个切换,从一个未勾选的checkbox和可见列开始

 Sub CheckBox2_Click() Columns("Q:R").Select Selection.EntireColumn.Hidden = not (Selection.EntireColumn.Hidden) Range("A2").Select End Sub 

我不认为你需要担心button的状态。 无论如何,你真的只需要点击即可。 无论当前状态如何,你都可以否定它。

 Range("Q:R").EntireColumn.Hidden = Not Range("Q:R").EntireColumn.Hidden Range("A2").Select 

这就是说,你拥有的逻辑是坚实的。 当你说它不工作时,你是什么意思? 它不会工作,或者只是第一次点击checkbox?