使用Excel VBA在工作簿中查找匹配项:运行时错误1004
我正在尝试创建一个宏,用于在活动工作簿的所有工作表中搜索单词“Routing” 当它检测到工作簿的某个工作表中第一次出现时,我希望宏选择相应工作表中的相关单元格 “我的宏”返回错误消息: 运行时错误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
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