在vba中打开表单时禁用checkbox

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

不知道你的意思是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演示 在这里输入图像说明

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

假设您的第一张表中有3个checkbox。

在这里输入图像说明

通过在键盘上按住“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工作簿”types(.xls)

closures你的excel。

打开你以前保存的文件,一切都会正常工作。

;)

PS:从你的Excel设置中启用macros很重要