如何在ActiveX复选框未勾选时移除粗边框
问题:ActiveX复选框未勾选时无法移除粗边框
我现在碰到个问题:ActiveX复选框未勾选时,没法移除目标区域的粗边框,试了好几段VBA代码,要么报错,要么结果不符合预期。
- 勾选状态:目标区域(B4:C14)显示黑色粗边框,对应按钮可见
- 未勾选状态:目标区域的粗边框仍存在,按钮已隐藏
因工作原因无法上传表格,可提供更多截图或信息。我刚接触VBA和ActiveX控件,正在学习,恳请帮忙解决!
当前使用的代码(Code#1)
Private Sub CheckBox3_Click() If CheckBox3.Value = True Then Me.CommandButton3.Visible = True Me.CommandButton4.Visible = True Me.CommandButton5.Visible = True Me.CommandButton6.Visible = True Me.CommandButton7.Visible = True Me.CommandButton8.Visible = True Me.CommandButton9.Visible = True Range("B4:B14", "C4:C14").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThick, _ Color:=RGB(0, 0, 0) Else: CheckBox3.Value = False Me.CommandButton3.Visible = False Me.CommandButton4.Visible = False Me.CommandButton5.Visible = False Me.CommandButton6.Visible = False Me.CommandButton7.Visible = False Me.CommandButton8.Visible = False Me.CommandButton9.Visible = False End If Application.EnableEvents = True End Sub
这段代码的问题是:未勾选时不会移除之前添加的粗边框。
尝试过的其他失败代码
Code#2
Private Sub CheckBox3_Click() If CheckBox3.Value = True Then Me.CommandButton3.Visible = True Me.CommandButton4.Visible = True Me.CommandButton5.Visible = True Me.CommandButton6.Visible = True Me.CommandButton7.Visible = True Me.CommandButton8.Visible = True Me.CommandButton9.Visible = True Range("B4:B14", "C4:C14").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThick, _ Color:=RGB(0, 0, 0) Else: CheckBox3.Value = False Me.CommandButton3.Visible = False Me.CommandButton4.Visible = False Me.CommandButton5.Visible = False Me.CommandButton6.Visible = False Me.CommandButton7.Visible = False Me.CommandButton8.Visible = False Me.CommandButton9.Visible = False With .Range("H4:I7") .Interior.ColorIndex = xlNone .Font.Color = vbWhite .Borders.LineStyle = xlNone .EntireRow.Hidden = False ' ? End If Application.EnableEvents = True End Sub
这段代码存在语法错误(With语句缺少对应的End With,且.Range前面未指定对象),运行会报错。
Code#3
Private Sub CheckBox3_Click() If CheckBox3.Value = True Then Me.CommandButton3.Visible = True Me.CommandButton4.Visible = True Me.CommandButton5.Visible = True Me.CommandButton6.Visible = True Me.CommandButton7.Visible = True Me.CommandButton8.Visible = True Me.CommandButton9.Visible = True Range("B4:B14", "C4:C14").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThick, _ Color:=RGB(0, 0, 0) Else: CheckBox3.Value = False Me.CommandButton3.Visible = False Me.CommandButton4.Visible = False Me.CommandButton5.Visible = False Me.CommandButton6.Visible = False Me.CommandButton7.Visible = False Me.CommandButton8.Visible = False Me.CommandButton9.Visible = False Range("B4:B14", "C4:C14").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThick, _ Color:=RGB(250, 250, 250) End If Application.EnableEvents = True End Sub
这段代码通过把边框颜色改成接近背景色来隐藏,但会破坏第3行底部的原有边框,不符合需求。
内容的提问来源于stack exchange,提问作者CR130
相关产品推荐
相关产品推荐

