用户窗体上的VBA循环组按钮

时间:2016-12-06 22:53:01

标签: excel excel-vba for-loop vba

我有一个带有一组单选按钮的用户表单。当我点击继续按钮时,我希望它迭代每个按钮。

我原本以为我可以用for循环做一些事情,例如' For Each button in group'!

有办法做到这一点吗?

编辑***********

我决定将按钮推入数组并循环遍历数组。我发现这更适合,因为它允许访问所有的OptionButton属性,因为循环通过Controls没有。

如果有更好的方法可以做到这一点,我仍然想知道。我想在道格的答案中做的是:

'... within For Each Loop
    If cCont.GroupName = "GroupB" Then
        'blah blah blah
    End If

这没有用,因为在CCont上没有GroupName,它被声明为" Control"。

再次感谢您的回复!

3 个答案:

答案 0 :(得分:1)

Private Sub UserForm_Initialize()
            Dim cCont As Control

            For Each cCont In Me.Controls
                If TypeName(cCont) = "CommandButton" Or TypeName(cCont) = "OptionButton" Then
                    cCont.Caption = "Boobaloobie"
                End If
            Next cCont

好的,这正是您正在寻找的。完美适合我

答案 1 :(得分:1)

我在google搜索" vba userform获取控件",这是最好的结果:

http://www.ozgrid.com/VBA/control-loop.htm

Dim control As Control
For Each control In Me.Controls

    If TypeName( control ) = "RadioButton" Then

        ' do stuff
    End If

Next

答案 2 :(得分:0)

我决定在控件的名称上添加一个后缀,以表示其所在的组。 然后,简单地循环遍历并检查后缀文本即可。