根据某些信息,我的excel文件处于某个“状态”。例如,我们有服务流程;(1)要求,(2)处理,(3)付款。在检查是否提供了所有信息之后,函数将返回1或0。1表示存在所有信息,否则返回0。
Dim Status(1 to 3) as Integer
CheckFunction(Request)
Status(1)= CheckFunction 'Return 1
CheckFuntion(Process)
Status(2)= CheckFunction 'Return 1
CheckFuntion(Payment)
Status(3)= CheckFunction 'Return 0
现在我的数组看起来像这样
Status(1, 1, 0)
该文件现在应该处于“处理”状态。我想使用它来确定服务的当前状态,例如;
Select Case Status()
Case (1, 0, 0)
'Some code
Case (1, 1, 0)
'Some code
Case (1, 1, 1)
'Some code
End Select
但是我无法使它正常工作。iv共有15种不同的状态,这对我来说似乎是最优雅的方式。
有人可以帮我吗?
比较数组无法明确完成-因此以下代码给出了Type Mismatch(错误13):
Public Sub TestMe()
Debug.Print Array(1, 2, 3) = Array(1, 2, 3)
End Sub
因此,通过比较数组的每个元素或通过其他业务逻辑来比较数组(例如,如果前两个元素相同或大小相同,则可以认为数组相等)。
最简单的解决方案可能是将数组转换为字符串,然后将该字符串与另一个字符串进行比较。然后,这将起作用:
Public Sub TestMe()
Dim status As Variant: status = Array(1, 1, 0)
Select Case Join(status, "")
Case "100"
Debug.Print 100
Case "110"
Debug.Print 110
Case "111"
Debug.Print 111
End Select
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句