保持checkbox选中用户窗体

目前,我已经创build了三个checkbox的用户表单。 这些checkbox激活我创build的模块。 当我检查用户表单中的方框时,我希望方框保持选中或未选中状态。 有什么想法吗?

只要电子表格保持打开状态, Me.Hide而不是Unload Me就可以实现,但一旦closures,电子表格将不能再记住这些设置。

如果您希望电子表格记住设置,即使closures了设置,也需要在某处捕获select设置。

比方说,我们创build了一个名为“chkboxVal”的工作表。 然后,我们可以通过Ok_Click事件/过程在那里存储数据,并通过UserForm_Initialize()部分获取数据。

代码将如下所示:

 Private Sub Ok_Click() Dim ctrl As Control, i As Integer For Each ctrl In UserForm1.Controls If TypeName(ctrl) = "CheckBox" Then i = i + 1 Sheets("chkboxVal").Cells(i, 1) = ctrl.Value End If Next Unload Me End Sub Private Sub UserForm_Initialize() Dim ctrl As Control, i As Integer For Each ctrl In UserForm1.Controls If TypeName(ctrl) = "CheckBox" Then i = i + 1 ctrl.Value = Sheets("chkboxVal").Cells(i, 1) End If Next End Sub 

您可能还想隐藏“chkboxVal”工作表,用户无法取消隐藏它。 如果是这样,只需在模块中添加此行。

 Sheets("chkboxVal").Visible = xlVeryHidden 

在尝试调用模块之前,请确保没有“卸载我”或“卸载用户表单#”。 这会将用户窗体重置为默认值。

您也可以更改每个checkbox的默认值(选中/取消选中)。 在构build用户窗体时,单击checkbox,然后在属性窗口中select是否将其设置为true或false作为默认值。