You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:35:13