excel VBA问题! 我想用使用复选框 复选框 选中时隐藏B-C列 不选中时不隐藏!

2024-10-31 15:30:53
推荐回答(2个)
回答(1):

方法一

如果是在工作表中使用复选框,右击复选框,在快捷菜单中单击选择“设置控件格式”,打开对话框如下图所示设置:

按Alt+F11打开VBE窗口,插入模块,粘贴如下代码:

Sub 隐藏()

If [L1] = True Then

   Columns("B:C").EntireColumn.Hidden = True

Else

   Columns("B:C").EntireColumn.Hidden = False

End If

End Sub

再右击复选框单击选择“指定宏”,选定宏“隐藏”。

操作及效果:单击复选框则B:C隐藏或显示。

方法二

如果是在窗体中使用筛选框,则双击窗体上的复选框,出现如下代码框架:

Private Sub CheckBox1_Click()

 

End Sub

在框架中粘贴如下代码:

If CheckBox1.Value = True Then

   Columns("B:C").EntireColumn.Hidden = True

Else

   Columns("B:C").EntireColumn.Hidden = False

End If

即变成如下完整代码:

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

   Columns("B:C").EntireColumn.Hidden = True

Else

   Columns("B:C").EntireColumn.Hidden = False

End If

End Sub

打开窗体,单击窗体上的复选框:

⑴未选中复选框时效果如下图示。

⑵选中复选框时效果如下图示。

仅供参考!

回答(2):

打开控件工具栏,添加一个复选框,双点此框,VBA中写入以下代码:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Worksheets(1).Columns(2).Hidden = True
Worksheets(1).Columns(3).Hidden = True
Else
Worksheets(1).Columns(2).Hidden = 0
Worksheets(1).Columns(3).Hidden = 0
End If
End Sub