在vba中打开工作表时禁用复选框

时间:2017-07-25 21:20:40

标签: excel vba excel-vba checkbox

我有3个复选框。当用户打开我的工作表时,他/她不能选中复选框。我希望他们被禁用。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

不确定您是指ActiveX还是FormControl,所以在这里

代码

Private Sub Worksheet_Activate()
  Dim myActiveX As Object
  Set myActiveX = Sheet1.OLEObjects("CheckBox1")
  myActiveX.Object.Value = True
  myActiveX.Object.Locked = False ' Make it False if you wish to enable it
  myActiveX.Object.Enabled = False ' Another option to disable

  Dim myFormControl As CheckBox
  Set myFormControl = ActiveSheet.Shapes("Check Box 1").OLEFormat.Object
  myFormControl.Value = True
  myFormControl.Enabled = False ' Make it True if you wish to enable it
End Sub

直播GIF演示 enter image description here

答案 1 :(得分:0)

你必须写一些VBA代码才能做到这一点。

假设你的第一张表中有3个CheckBoxes。

enter image description here

持有" Alt"键盘上的按键和按下一次" F11"键,打开Microsoft Visual Basic。 (Alt + F11)

在左手边,您可以看到" VBAProject"树。

双击" ThisWorkbook"在窗口中显示并复制以下代码:

Private Sub Workbook_Open()
   void = uncheckAllCheckboxes()
End Sub


Function uncheckAllCheckboxes()
   ThisWorkbook.Worksheets(1).CheckBox1.Value = False
   ThisWorkbook.Worksheets(1).CheckBox2.Value = False
   ThisWorkbook.Worksheets(1).CheckBox3.Value = False
End Function

将excel文件保存为" Excel 97-2003工作簿" type(.xls)

关闭你的excel。

打开您之前保存的文件,一切正常。

P.S。:从您的Excel设置中启用宏

非常重要