簡體   English   中英

使用 Excel VBA 在工作簿中查找匹配項:運行時錯誤 1004

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM