我目前正在尝试在复选框的 onclick 事件中调用 Sub 。我想要做的是获取我单击的复选框的 groupName、Name 和 Value 参数,并将它们输入到一个 sub 中,该 sub 使用变量将组中的其余复选框切换为隐藏或取消隐藏。但是,我希望有多个组复选框具有相同的功能,而不是为每个 onclick 事件创建多个函数,我希望能够调用每次处理可见性变化的子程序。
考虑上面的图像。如果我将“管理员”复选框设置为 false,则应隐藏同一框中的“旧版本”复选框。如果我检查它为真,它应该再次显示。我也想对客户端框做同样的事情。我在网上看过很多人推荐使用 ActiveControl.Value 或 Application.Caller 但这些似乎都不起作用。到目前为止我使用的两个潜艇可以在下面找到。在当前状态下,应用程序错误
admin_value = ActiveControl.Value
这是完整的代码片段:
Private Sub admin_toggle_Click()
Dim admin_group As String
Dim admin_name As String
Dim admin_value As String
admin_value = ActiveControl.Value
admin_name = ActiveControl.Name
admin_group = ActiveControl.GroupName
Call toggle_options
End Sub
Private Sub toggle_options()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.CheckBox Then
If ctl.GroupName = admin_group Then
If ctl.Name <> admin_name Then
If admin_value = True Then
ctl.Visible = True
Else
ctl.Visible = False
End If
End If
End If
End If
Next ctl
End Sub
提前致谢。