VBA入门:如何检查变量值是否在预定义静态列表中?
检查VBA变量是否在静态列表中的简单方法
作为VBA初学者,你完全可以不用复杂方案,这里有两种简单易懂的实现方式:
方法1:直接用Or逻辑判断(适合短列表)
如果你的静态列表元素很少(比如15、22、35),直接用Or连接多个等于判断就行,代码一目了然:
Dim RowNum As Integer RowNum = 22 ' 假设你的变量值是22 ' 检查RowNum是否在列表里 If RowNum = 15 Or RowNum = 22 Or RowNum = 35 Then MsgBox "RowNum在列表中" Else MsgBox "RowNum不在列表中" End If
这种写法不用数组,代码直白,新手一眼就能看懂。
方法2:用简单数组+循环(适合稍长的列表)
如果以后列表元素变多,用Or会太繁琐,这时候可以用数组,写法也不难:
Dim RowNum As Integer Dim checkList As Variant Dim i As Integer RowNum = 35 ' 假设变量值是35 ' 定义静态列表为数组 checkList = Array(15, 22, 35) ' 循环遍历数组,检查是否匹配 For i = LBound(checkList) To UBound(checkList) If checkList(i) = RowNum Then MsgBox "RowNum在列表中" Exit For ' 找到匹配就退出循环,不用继续检查 End If ' 如果循环到最后都没找到,提示不在列表 If i = UBound(checkList) Then MsgBox "RowNum不在列表中" End If Next i
这里Array()函数直接把静态列表转成数组,LBound和UBound分别取数组的起始和结束下标,循环逐个对比,逻辑清晰。
总结:短列表用方法1最省事,长列表用方法2更灵活,两种都不需要复杂技巧,适合新手。
内容的提问来源于stack exchange,提问作者Katrina Palmer
相关产品推荐
相关产品推荐

