带字符串的复选框数组

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

是的,代码多了一点,但代码更易于阅读和维护。