gpt4 book ai didi

excel - 在 Case Select 语句中使用数组作为参数

转载 作者:行者123 更新时间:2023-12-03 01:36:08 26 4
gpt4 key购买 nike

根据某些信息,我的 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

但我无法让它正常工作。我总共获得了 15 种不同的状态,这对我来说似乎是最优雅的方式。

有人可以帮我吗?

最佳答案

无法显式比较数组 - 因此下面的代码给出类型不匹配(错误 13):

Public Sub TestMe()            
Debug.Print Array(1, 2, 3) = Array(1, 2, 3)
End Sub

因此,通过比较数组中的每个元素或通过一些其他业务逻辑来比较数组(例如,如果前 2 个元素相同或大小相同,则可以认为数组相等)。


最简单的解决方案可能是将数组转换为字符串并将该字符串与另一个字符串进行比较。然后,这将起作用:

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

关于excel - 在 Case Select 语句中使用数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51138844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com