VBA 在列范围内查找特定文本

VBA 在列范围内查找特定文本

我在 B 至 H 列中将值为“TRUE”。我希望我的宏在 B:H 范围内的任何单元格包含“FALSE”时在 A 列中返回“FALSE”,否则返回“TRUE”。并一直执行到最后一行。任何帮助都非常感谢!

我尝试了下面的代码,它可以适用于一行,但如何适用于所有填充的行呢?

Sub Test2()

Dim foundRng As Range

Set foundRng = Range("B2:H2").Find("FALSE")

If foundRng Is Nothing Then
    Range("A2").Value = "TRUE"
Else
    Range("A2").Value = "FALSE"
End If
End Sub

答案1

我修改了你的代码并包括:

  • 用于查找 A 列的最后一个非空单元格的变量:Dim lastRow As Long
  • 然后,使用循环检查 B:H 范围的值并将结果显示在 A 列的相应行上。
Sub Test2()

    Dim foundRng As Range
    Dim lastRow As Long

    'Find the last row with data of column A -- A is indicated with 1
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    'Loop from row 2 to the last row
    For counter = 2 To lastRow
        'Check the value based on the row
        Set foundRng = Range("B" & counter & ":H" & counter).Find("FALSE")
        
        If foundRng Is Nothing Then
            Worksheets("Sheet1").Range("A" & counter).Value = "TRUE"
        Else
            Worksheets("Sheet1").Range("A" & counter).Value = "FALSE"
        End If
        
    Next counter
    
End Sub

相关内容