【问题标题】:Disable checkboxes when sheet opened in vba在 vba 中打开工作表时禁用复选框
【发布时间】:2017-07-26 06:35:01
【问题描述】:

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

【问题讨论】:

  • Disabled 表示在打开时禁用,或者您不希望用户被允许选中/取消选中它们?
  • 我的意思是不允许用户选中/取消选中它们。很抱歉缺少信息。

标签: vba excel checkbox


【解决方案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 演示

【讨论】:

    【解决方案2】:

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

    假设您的第一张表中有 3 个复选框。

    按住键盘上的“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 Workbook”类型(.xls)

    关闭您的 Excel。

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

    ;)

    P.S.:从 Excel 设置中启用宏很重要

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多