使用Excel VBA在工作簿中查找匹配项:运行时错误1004

使用Excel VBA在工作簿中查找匹配项:运行时错误1004,excel,vba,runtime-error,Excel,Vba,Runtime Error,我正在尝试创建一个宏,用于在活动工作簿的所有工作表中搜索单词“Routing” 当它检测到工作簿的某个工作表中第一次出现时,我希望宏选择相应工作表中的相关单元格 “我的宏”返回错误消息: 运行时错误1004:范围类的激活方法失败 这行代码似乎产生了问题:Loc.Activate Sub FindAndExecuteRouting() Dim Sh As Worksheet Dim Loc As Range For Each Sh In ActiveWorkbook.Worksheets

我正在尝试创建一个宏,用于在活动工作簿的所有工作表中搜索单词“Routing”

当它检测到工作簿的某个工作表中第一次出现时,我希望宏选择相应工作表中的相关单元格

“我的宏”返回错误消息:

运行时错误1004:范围类的激活方法失败

这行代码似乎产生了问题:
Loc.Activate

Sub FindAndExecuteRouting()
Dim Sh As Worksheet
Dim Loc As Range
For Each Sh In ActiveWorkbook.Worksheets
    With Sh.UsedRange
        Set Loc = .Cells.Find(What:="Routing")
        If Not Loc Is Nothing Then
            Loc.Activate
        End If
    End With
Next
End Sub

您不能
激活
a
范围
,除非它位于
ActiveSheet

因此,您必须先执行
Sh.Activate
,然后才能执行
Loc.Activate
。请注意,通常您不想这样做,但当时,目标是选择一个单元格,以便用户可以看到特定单元格周围的选择框。。。这是
工作表中为数不多的合法用例之一。激活
=)

请注意
Exit子项
:一旦找到循环,就要停止循环(
Exit For
也可以),否则只需非常快地依次选择每个结果,最后一个结果才会被选中


考虑使用有助于保持缩进一致的

你不能
激活
一个
范围
,除非它在
活动表上

因此,您必须先执行
Sh.Activate
,然后才能执行
Loc.Activate
。请注意,通常您不想这样做,但当时,目标是选择一个单元格,以便用户可以看到特定单元格周围的选择框。。。这是
工作表中为数不多的合法用例之一。激活
=)

请注意
Exit子项
:一旦找到循环,就要停止循环(
Exit For
也可以),否则只需非常快地依次选择每个结果,最后一个结果才会被选中

考虑使用有助于保持缩进一致的

Public Sub FindAndExecuteRouting()
    Dim Sh As Worksheet
    Dim Loc As Range
    For Each Sh In ActiveWorkbook.Worksheets
        With Sh.UsedRange
            Set Loc = .Find(What:="Routing")
            If Not Loc Is Nothing Then
                Sh.Activate
                Loc.Activate
                Exit Sub
            End If
        End With
    Next
End Sub