【发布时间】:2015-05-08 14:39:43
【问题描述】:
我有一个国家列表和一个 Excel 模型的场景列表。每个列表都有带有“所有国家/地区”和“所有场景”选项的复选框,这些选项将选中与每个国家/地区相关的所有复选框。当我单击“所有国家/地区”复选框时,每个国家/地区的复选框都被正确选中。 “所有场景”复选框相同。但是,如果我取消选择一个国家/方案,所有国家/方案框仍处于选中状态。
当子复选框被取消选中时,如何取消选中“所有国家”和“所有场景”复选框?
下面是我目前的代码。
Sub SelectAll_Read()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("MCB.1").Name And CB.Name <> ActiveSheet.CheckBoxes("MCB.2").Name Then
If Mid(CB.Name, 5, 1) = "1" Then
CB.Value = ActiveSheet.CheckBoxes("MCB.1").Value
ElseIf Mid(CB.Name, 5, 1) = "2" Then
CB.Value = ActiveSheet.CheckBoxes("MCB.2").Value
End If
End If
Next CB
End Sub
Sub Mixed_ReadState()
Dim CB As CheckBox
Dim i As String
For Each CB In ActiveSheet.CheckBoxes
i = Mid(CB.Name, 5, 1)
If CB.Name <> ActiveSheet.CheckBoxes("MCB" & i).Name And CB.Value <> ActiveSheet.CheckBoxes("MCB" & i).Value And ActiveSheet.CheckBoxes("MCB" & i).Value <> 2 Then
ActiveSheet.CheckBoxes("MCB" & i).Value = 2
Exit For
Else
ActiveSheet.CheckBoxes("MCB" & i).Value = CB.Value
End If
Next CB
End Sub
【问题讨论】:
-
从您的代码中不清楚复选框是如何按名称相关/分组的。也许你可以解释一下你的命名方案。
-
@Tim Williams - 我将 MCB.1 用于我的“主复选框 1”,即所有国家/地区复选框。然后每个单独的国家/地区是 MCB.1.1、.1.2、.1.3 等等。名称 MCB.2 用作我的所有场景。每个单独的场景是 MCB.2.1、.2.2、.2.3。我希望这可以澄清并感谢您提供的任何帮助