如何检查是否满足两个或多个条件,而其中只有一个是真的



我正在使用以下脚本和一个软件,该软件使用OMR读取CheckBox并将数据输出到XML文件。

有没有一种方法可以改变它,说如果选中了多个框,那么数据输出应该是列表中第一个选中的框?

希望这是有道理的。

如有任何帮助,我们将不胜感激。

Dim installer 
q_a1= Metadata.Values("OMR_FRED_P2")
q_a2= Metadata.Values("OMR_JON_P2")
q_a3= Metadata.Values("OMR_MATT_P2")
q_a4= Metadata.Values("OMR_STEVE_P2") 
If q_a1 = "Filled" Then
installer = "Fred"
End If
If q_a2 = "Filled" then
installer = "Jon"
End If
If q_a3 = "Filled" then
installer = "Matt"
End If
If q_a4 = "Filled" then
installer = "Steve"
End If
call Metadata.SetValues("CompleteBy",installer)

您可以这样做:

Dim a1Checked, a2Checked, a3Checked, a4Checked
Dim numberOfChecked
a1Checked = (q_a1 = "Filled")
a2Checked = (q_a2 = "Filled")
a3Checked = (q_a3 = "Filled")
a4Checked = (q_a4 = "Filled")
numberOfChecked = Abs(a1Checked + a2Checked + a3Checked + a4Checked)
If a1Checked Or numberOfChecked > 1 Then
installer = "Fred"
ElseIf a2Checked Then
installer = "Jon"
ElseIf a3Checked Then
installer = "Matt"
ElseIf a4Checked Then
installer = "Steve"
Else
' Decide what you want to do if none is checked.
End If
Call Metadata.SetValues("CompleteBy", installer)

在VBScript中,"布尔true"值的数值为-1,而false值的数值则为0

上面的代码只是将这些值相加。如果满足两个条件,则总数将为-2,然后我们使用Abs函数来获得抽象值(即,返回2而不是-2(。之后,您可以使用numberofChecked > 1轻松检查是否满足两个或多个条件。

相关内容

最新更新