Excel 在列中搜索文本并高亮显示该行
我试图在第一列的单元格中搜索“/”。我需要浏览13个工作表,找到包含“/”的单元格(也可能包含其他文本),然后突出显示该行。我一直在测试我在网上找到的代码,但没有太多机会看完整个工作簿 将值设置为字符串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
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语句,它会让我通过工作表。这很有效。再次感谢!