我有一个带有一组单选按钮的用户表单。当我点击继续按钮时,我希望它迭代每个按钮。
我原本以为我可以用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"。
再次感谢您的回复!
答案 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)
我决定在控件的名称上添加一个后缀,以表示其所在的组。 然后,简单地循环遍历并检查后缀文本即可。