[英]Run-time error '1004' When Using Excel-VBA Macro to Copy From Workbook
[英]Find a match in workbook using Excel VBA: run-time error 1004
我正在嘗試創建一個宏,用於在活動工作簿的所有工作表中搜索“路由”一詞。
當它在我的工作簿的一個工作表中檢測到第一次出現時,我希望我的宏選擇相應工作表上的相關單元格。
我的宏返回錯誤消息:
運行時錯誤 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
您不能Activate
Range
除非它在ActiveSheet
。
所以你必須先做Sh.Activate
才能做Loc.Activate
。 請注意,通常您不希望Activate 一個您已經引用的單元格,但是當目標是選擇一個單元格以便用戶可以看到特定單元格周圍的選擇框時......好吧,這是非常Worksheet.Activate
幾個合法用例 =)
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
請注意Exit Sub
:一旦找到一個,您就希望停止循環( Exit For
也可以),否則您將非常快速地連續選擇每個結果,最終只會選擇最后一個。
考慮使用壓頭來幫助保持縮進一致!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.