保持复选框选中用户表单
Keep Check box Checked Userform
目前,我已经创建了一个带有三个复选框的用户表单。这些复选框激活我创建的模块。当我选中用户表单中的框时,我希望该框保持选中或未选中状态。有什么想法吗?
确保在尝试调用模块之前没有 "Unload Me" 或 "Unload Userform#"。这会将用户表单重置为默认值。
您还可以更改每个复选框的默认值 (check/unchecked)。在构建用户表单时,单击复选框,然后在属性 window、select 中将其设置为默认值 true 或 false。
只要价差sheet 保持开放,Me.Hide
而不是 Unload Me
就可以了,但一旦关闭,价差sheet 就不会了能够再记住设置。
如果你想让传播sheet记住设置,即使它关闭了,也需要在某处捕获选择设置。
假设我们创建了一个名为 "chkboxVal" 的 sheet。然后我们可以通过 Ok_Click
event/procedure 将数据存储在那里,并通过 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" sheet。如果是这样,只需在模块中添加这一行。
Sheets("chkboxVal").Visible = xlVeryHidden
目前,我已经创建了一个带有三个复选框的用户表单。这些复选框激活我创建的模块。当我选中用户表单中的框时,我希望该框保持选中或未选中状态。有什么想法吗?
确保在尝试调用模块之前没有 "Unload Me" 或 "Unload Userform#"。这会将用户表单重置为默认值。
您还可以更改每个复选框的默认值 (check/unchecked)。在构建用户表单时,单击复选框,然后在属性 window、select 中将其设置为默认值 true 或 false。
只要价差sheet 保持开放,Me.Hide
而不是 Unload Me
就可以了,但一旦关闭,价差sheet 就不会了能够再记住设置。
如果你想让传播sheet记住设置,即使它关闭了,也需要在某处捕获选择设置。
假设我们创建了一个名为 "chkboxVal" 的 sheet。然后我们可以通过 Ok_Click
event/procedure 将数据存储在那里,并通过 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" sheet。如果是这样,只需在模块中添加这一行。
Sheets("chkboxVal").Visible = xlVeryHidden