如何检查我的变量值是否在 VBA 中预定义的静态值列表中?我是这方面的初学者,所以请保持简单!
我的变量称为 RowNum 并且具有特定值 我想看看它是否出现在预定义的静态值列表中(例如 15、22、35)。
我只能找到更复杂的例子,而我却迷失在其中!
与数组有关?
这里有两个选项供您使用,两者都返回 True/False,具体取决于它们是否找到匹配项...这些选项是否适合您取决于您现有代码中已有的数据类型。
第一个选项依赖于您想要测试的数字是否为 Long 以及您想要测试的数字是否位于以逗号分隔的字符串中(请参阅使用示例)
Function IsInList1(num As Long, listOfNums As String) As Boolean
IsInList1 = UBound(Filter(Split(listOfNums, ","), CStr(num))) > -1
End Function
使用示例(字符串可以包含任意数量的“数字”,但它们必须用逗号分隔并且没有其他文本,例如它们本身不能包含逗号)
Debug.Print IsInList1(123, "45,123,62")
第二个选项依赖于您想要测试的长整型数字以及您想要测试它的单个数值的数字(再次参见用法示例)
Function IsInList2(num As Long, ParamArray listOfNums() As Variant) As Boolean
If Not IsMissing(listOfNums) Then
IsInList2 = UBound(Filter(listOfNums, CStr(num))) > -1
End If
End Function
使用示例(第一个数字正在针对每个后续数字进行测试......同样,您可以传入任意数量的数字)
Debug.Print IsInList2(123, 45, 123, 62)