Excel 在列中搜索文本并高亮显示该行

Excel 在列中搜索文本并高亮显示该行,excel,vba,Excel,Vba,我试图在第一列的单元格中搜索“/”。我需要浏览13个工作表,找到包含“/”的单元格(也可能包含其他文本),然后突出显示该行。我一直在测试我在网上找到的代码,但没有太多机会看完整个工作簿 将值设置为字符串 value = "/" x = 1 For x = 1 To 13 Step -1 lastrow = Cells(Rows.Count, "A").End(xlUp).Row For y = 1 To lastrow Range("a" & i).Find (val

我试图在第一列的单元格中搜索“/”。我需要浏览13个工作表,找到包含“/”的单元格(也可能包含其他文本),然后突出显示该行。我一直在测试我在网上找到的代码,但没有太多机会看完整个工作簿

将值设置为字符串

value = "/"

x = 1

For x = 1 To 13 Step -1
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
    For y = 1 To lastrow
    Range("a" & i).Find (value)
    Range("a" & i).Rows.Interior.Color = RGB(256, 1, 1)

    Next y
Next x

这是我正在使用的代码。如果有人能提供帮助,我将不胜感激。

这与你的问题无关,但我注意到的第一件事是:

For x = 1 To 13 Step -1
这是行不通的;只有当值的顺序递减时,负步骤才会起作用

您缺少对工作表的任何选择。如果要遍历工作簿中的所有工作表,那么最简单的方法是对工作表中的每个工作使用

在Excel VBA中查找
有点复杂。调用
Find
返回包含指定文本的区域中的第一个单元格。然后需要对
FindNext
进行后续调用,以获取任何其他匹配的单元格。但是,
FindNext
将永远运行--您需要保存对第一个匹配单元格的引用,然后比较从
FindNext
获得的结果,直到第一个匹配单元格再次显示

我会这样做:

Sub foo()
    Dim value As String: value = "/"
    Dim rSearch As Range
    Dim firstFound As Range
    Dim nextFound As Range
    Dim wks As Worksheet

    For Each wks In Worksheets
        wks.Activate

        Set rSearch = Range("a1", Cells(Rows.Count, "a").End(xlUp))
        Set firstFound = rSearch.Find(value)
        If Not firstFound Is Nothing Then
            Set nextFound = firstFound
            Do
                nextFound.EntireRow.Interior.Color = RGB(256, 1, 1)
                Set nextFound = rSearch.FindNext(nextFound)
            Loop While nextFound.Address <> firstFound.Address
        End If
    Next
End Sub
Sub-foo()
将值设置为字符串:value=“/”
Dim R搜索范围
作为射程首次发现
Dim nextFound As范围
将工作作为工作表
对于工作表中的每项工作
工作。激活
设置rSearch=Range(“a1”,单元格(Rows.Count,“a”)。结束(xlUp))
Set firstFound=rSearch.Find(值)
如果不是第一次发现,那就什么都不是了
Set nextFound=firstFound
做
nextFound.EntireRow.Interior.Color=RGB(256,1,1)
Set nextFound=rSearch.FindNext(nextFound)
在nextFound.Address firstFound.Address时循环
如果结束
下一个
端接头

这可以通过基于公式的条件格式实现;e、 g.
=ISNUMBER(查找(“/”,$A1))
谢谢您的帮助。我想如果我使用for语句,它会让我通过工作表。这很有效。再次感谢!