首页 > 解决方案 > 查找范围内的文本,如果没有找到,则继续每个循环

问题描述

目标:在 B14:C18 中搜索“Global Outperformance Details”,如果找到,则在 B14:C16 周围添加边框,如果没有找到,则转到下一个 sht(继续循环)。Find 语句运行良好(我已经 debug.printed 以在单个工作表上进行测试),但如果 find 什么都没有,我就是不知道如何正确跳到下一张工作表。

问题:我收到“91”错误(对象或未定义变量)FindGlOutperfDet =,我知道当 Find 没有结果时会发生该错误。我已经在各个工作表上测试了代码(没有 for each 循环),它可以在找到文本时将边框放置到位,并在找不到文本时抛出相同的错误。

我已经浏览了以下页面,但仍然出现错误。

如何检测VBA excel是否发现了什么?

IF FIND 函数在 vba 中找不到任何内容

尝试1:

Sub Findtext()
Dim FindGlOutperfDet As Long
Dim Sht As Worksheet

For Each Sht In Worksheets 
FindGlOutperfDet = Sht.Range("B14:C18").Find(What:="Global Outperformance Details", After:=Range("B18"), LookAt:=xlPart, LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    
    If Not IsError(FindGlOutperfDet) Then
         Sht.Range("B14:C16").BorderAround ColorIndex:=1, Weight:=xlMedium
    End If

Next Sht
End Sub

尝试2:

Sub FindSomeCells123()
Dim FindGlOutperfDet As Range
Dim Sht As Worksheet


For Each Sht In Worksheets
    FindGlOutperfDet = Sht.Range("B14:C18").Find(What:="Global Outperformance Details", After:=Range("B18"), LookAt:=xlPart, LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
    
    If Not FindGlOutperfDet Is Nothing Then
         Sht.Range("B14:C16").BorderAround ColorIndex:=1, Weight:=xlMedium
    End If
Next Sht


End Sub

标签: vbaloopsforeachfindnext

解决方案


推荐阅读