VBA - For Each,OptionButtons和Groups

时间:2017-06-13 18:04:14

标签: excel excel-vba excel-formula excel-2010 excel-2007 vba

我想取消激活我的选项按钮,但由于我将它们分组,因此我的代码将不再有效。

到目前为止,我有这个:

Sub Clean_sheet()
Dim Ws as Worksheet
Dim optBtn As OptionButton
Dim m As Byte

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Set Ws = ThisWorkbook.Sheets("Externe")

    For Each optBtn In Ws.OptionButtons
        optBtn.Value = -4146
    Next

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

它只是跳过“对于每个optBtn in ...”部分。我不使用activexControls。

我的群组看起来像这样:

enter image description here

enter image description here

I've already been helped但是由于我对表单进行分组,因此不再适用:(。 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

以下代码将取消选择“GPE_M1”组中的所有选项:

Dim Group_Frame As Shape
Dim Group_Item As Shape

    Set Group_Frame = ws.Shapes("GPE_M1")  'top frame 

    For Each Group_Item In Group_Frame.GroupItems
        If Group_Item.FormControlType = xlOptionButton Then 
           Group_Item.ControlFormat.Value = -4146
        End if
    Next Group_Item