Excel VBA:如何获取两列中含FALSE值的所有行号
解决VBA查找多列所有FALSE行号的问题
你的问题出在Find方法只会返回第一个匹配结果,要获取所有符合条件的行号,得用FindNext循环遍历所有匹配项,具体修改如下:
Dim CurrentWB As Workbook Dim FindRow As Range Dim firstFindAddr As String Dim result As String Set CurrentWB = ActiveWorkbook With CurrentWB.Sheets("Sheet1") ' 查找第一个匹配的"FALSE"文本 Set FindRow = .Range("J:J, K:K").Find(What:="FALSE", LookIn:=xlValues) If Not FindRow Is Nothing Then firstFindAddr = FindRow.Address ' 记录第一个匹配项地址,避免无限循环 result = "FALSE found in rows:" & vbCrLf & FindRow.Row ' 初始化结果字符串 ' 循环查找后续匹配项 Do Set FindRow = .Range("J:J, K:K").FindNext(FindRow) ' 排除回到第一个匹配项的情况,将新行号追加到结果 If FindRow.Address <> firstFindAddr Then result = result & ", " & FindRow.Row End If Loop While Not FindRow Is Nothing And FindRow.Address <> firstFindAddr MsgBox result ' 弹出包含所有行号的消息框 Else MsgBox "No FALSE found" End If End With
注意事项
- 如果你要找的是逻辑值False(不是文本格式的"FALSE"),把代码里的
What:="FALSE"改成What:=False - 代码里用
vbCrLf实现换行,让消息框的行号显示更清晰,也可以换成逗号直接分隔 - 必须判断
FindRow.Address <> firstFindAddr,否则循环会无限重复查找第一个匹配项
内容的提问来源于stack exchange,提问作者user20755465
相关产品推荐
相关产品推荐

