高分请教一个问题,关于数组
图2
如图所示,现在有opt1(i) 20个数组控件,正常情况下20个控件都是可以编辑的(opt1(i).Enabled=true),20个控件相连返回结果为true,如图1所示 如果因为其它原因导至其中一个或者多个不可编(opt1(i).Enabled=false),造成数组不相连,这样如何来检测这些数组中有哪些为不可编辑的,并在弹出的Msgbox中指出不可编辑的地方,如图2所示
Option Explicit
Private Function CheckObjPass(objCtrls As Object) As Boolean
' objCtrls ----- 被检查的控件数组
Dim i&, c&, u&, Mask&
u = 0&: Mask = -1&
For i = objCtrls.LBound To objCtrls.UBound
c = objCtrls(i).Enabled
u = ((Mask Xor c) And 1&) + u
Mask = c
Next
CheckObjPass = u < 2&
End Function
'调用示例:
Private Sub Command2_Click()
If (CheckObjPass(opt1)) Then
MsgBox "通过!", 64
Else
MsgBox "错误!", 48
End If
End Sub