带字符串的复选框数组
Checkbox array with string
我需要有关如何使用复选框数组的帮助,如果复选框被选中,值将为:
check1(0) = OK ,check1(1) = X,check1(2) = [X],check1(3) = NP
a=iif(check1(0).Value = vbchecked,"OK")
获取错误:
"Error sub or function not defined"
我不确定您提供的代码行如何产生错误 sub or function not defined
。相反,您应该收到错误 Argument not optional
。这一行的语法应该是这样的:
a = IIf(Check1(0).Value = vbChecked, "OK", "")
如果我理解您的要求,您可以这样使用 IIf
:
a = IIf(Check1(0).Value = vbChecked, "OK", IIf(Check1(1).Value = vbChecked, "X", IIf(Check1(2).Value = vbChecked, "[X]", IIf(Check1(3).Value = vbChecked, "NP", ""))))
但是,我不推荐这种方法。相反,我会像这样构造代码:
If Check1(0).Value = vbChecked Then
a = "OK"
ElseIf Check1(1).Value = vbChecked Then
a = "X"
ElseIf Check1(2).Value = vbChecked Then
a = "[X]"
ElseIf Check1(3).Value = vbChecked Then
a = "NP"
Else
a = ""
End If
是的,代码多了一点,但代码更易于阅读和维护。
我需要有关如何使用复选框数组的帮助,如果复选框被选中,值将为:
check1(0) = OK ,check1(1) = X,check1(2) = [X],check1(3) = NP
a=iif(check1(0).Value = vbchecked,"OK")
获取错误:
"Error sub or function not defined"
我不确定您提供的代码行如何产生错误 sub or function not defined
。相反,您应该收到错误 Argument not optional
。这一行的语法应该是这样的:
a = IIf(Check1(0).Value = vbChecked, "OK", "")
如果我理解您的要求,您可以这样使用 IIf
:
a = IIf(Check1(0).Value = vbChecked, "OK", IIf(Check1(1).Value = vbChecked, "X", IIf(Check1(2).Value = vbChecked, "[X]", IIf(Check1(3).Value = vbChecked, "NP", ""))))
但是,我不推荐这种方法。相反,我会像这样构造代码:
If Check1(0).Value = vbChecked Then
a = "OK"
ElseIf Check1(1).Value = vbChecked Then
a = "X"
ElseIf Check1(2).Value = vbChecked Then
a = "[X]"
ElseIf Check1(3).Value = vbChecked Then
a = "NP"
Else
a = ""
End If
是的,代码多了一点,但代码更易于阅读和维护。