用户窗体控件 - 循环和检查值
Userform controls - looping and checking value
我正在尝试循环访问用户窗体上的两组控件。如果两个控件(切换按钮)的组合为真,则执行某些操作。从创建控件的用户窗体调用 sub。这是我第一次使用用户窗体控制变量,下面的代码无法编译,所以这可能是完全错误的。请问有什么建议吗?
更新了代码示例,但出现编译错误。见下图:
Private Sub CONTROLS_Click()
Dim X As Integer, Y As Integer
Dim BOOK As Variant, STRAT As Variant
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
For X = LBound(BOOK) To UBound(BOOK)
If Me.CONTROLS(BOOK(X)).Value = True Then
For Y = LBound(STRAT) To UBound(STRAT)
If Me.CONTROLS(STRAT(Y)).Value = True Then
'DO SOMETHING
End If
Next Y
End If
Next X
End Sub
这些都是 1 的数组。
BOOK = Array("TYPE1, TYPE2")
STRAT = Array("FAST,MEDIUM,SLOW")
他们应该是,
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
变体数组通常从零开始; BOOK 数组中的第一个元素位于 BOOK(0)。他们在直接从工作表中填充时使用基于 1 的索引,因为如果显式重新调整为从 1 开始。最好使用 LBound function and UBound function 来确定所有的下边界和上边界时间.
Private Sub CONTROLS_Click()
Dim X As Integer, Y As Integer
Dim BOOK As Variant, STRAT As Variant
'Type1, Type2, Fast, Medium and Slow are the names of the togglebuttons
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
For X = LBound(BOOK) To UBound(BOOK)
If Me.CONTROLS(BOOK(X)).Value = True Then
For Y = LBound(STRAT) To UBound(STRAT)
If Me.CONTROLS(STRAT(Y)).Value = True Then
'DO SOMETHING
End If
Next Y
End If
Next X
End Sub
这应该可以修复您的数组赋值和嵌套 For ... Next
循环。
我正在尝试循环访问用户窗体上的两组控件。如果两个控件(切换按钮)的组合为真,则执行某些操作。从创建控件的用户窗体调用 sub。这是我第一次使用用户窗体控制变量,下面的代码无法编译,所以这可能是完全错误的。请问有什么建议吗?
更新了代码示例,但出现编译错误。见下图:
Private Sub CONTROLS_Click()
Dim X As Integer, Y As Integer
Dim BOOK As Variant, STRAT As Variant
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
For X = LBound(BOOK) To UBound(BOOK)
If Me.CONTROLS(BOOK(X)).Value = True Then
For Y = LBound(STRAT) To UBound(STRAT)
If Me.CONTROLS(STRAT(Y)).Value = True Then
'DO SOMETHING
End If
Next Y
End If
Next X
End Sub
这些都是 1 的数组。
BOOK = Array("TYPE1, TYPE2")
STRAT = Array("FAST,MEDIUM,SLOW")
他们应该是,
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
变体数组通常从零开始; BOOK 数组中的第一个元素位于 BOOK(0)。他们在直接从工作表中填充时使用基于 1 的索引,因为如果显式重新调整为从 1 开始。最好使用 LBound function and UBound function 来确定所有的下边界和上边界时间.
Private Sub CONTROLS_Click()
Dim X As Integer, Y As Integer
Dim BOOK As Variant, STRAT As Variant
'Type1, Type2, Fast, Medium and Slow are the names of the togglebuttons
BOOK = Array("TYPE1", "TYPE2")
STRAT = Array("FAST", "MEDIUM", "SLOW")
For X = LBound(BOOK) To UBound(BOOK)
If Me.CONTROLS(BOOK(X)).Value = True Then
For Y = LBound(STRAT) To UBound(STRAT)
If Me.CONTROLS(STRAT(Y)).Value = True Then
'DO SOMETHING
End If
Next Y
End If
Next X
End Sub
这应该可以修复您的数组赋值和嵌套 For ... Next
循环。