簡體   English   中英

Excel VBA-代碼突然收到運行時錯誤91(AutoFilter)

[英]Excel VBA- Code suddenly get a runtime error 91 (AutoFilter)

我有一個代碼,可以使用autofiler搜索並將其從一張紙復制到另一張紙。 我在下面包含了我的代碼。 我的問題是,在較早(2周前),代碼按預期工作正常,我已經對代碼進行了很多次測試,並且沒有錯誤。 突然,運行代碼時出現運行時錯誤91,並且該錯誤似乎與以下行有關:

.AutoFilter.Range.Offset(1, 0).Copy Destination:=ws2.Range("B10")

我已經嘗試過.AutoFilter=False ,錯誤處理和工作表激活。 但是我仍然遇到相同的運行時錯誤。 有人可以幫我弄清楚我的代碼有什么問題嗎? 任何幫助都非常感謝。

Sub search()
    Dim ws1, ws2 As Worksheet
    Set ws1 = Worksheets("Master")
    Set ws2 = Worksheets("Fruit")
    'Worksheets("Fruit").Activate

    With ws1
        '.AutoFilterMode = False
        .Range("B7").AutoFilter
        .Range("B7").AutoFilter field:=17, Criteria1:="Rotten"
        'On Error Resume Next
        .AutoFilter.Range.Offset(1, 0).Copy Destination:=ws2.Range("B10")
        '.AutoFilterMode = False
    End With

    With ws2.Range("B10:Y1400").Borders
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With

    MsgBox ("Search done.")
End Sub

嘗試這個。

  1. field:=17替換為field:=1 您的范圍是一列,因此字段應為1

  2. 還替換行.AutoFilter.Range.Offset(1, 0).Copy Destination:=ws2.Range("B10")

有了這個

Dim rng As Range

Set rng = .AutoFilter.Range.Offset(1, 0)

'~~> Checking if there is something that was filtered
If Not rng Is Nothing Then
    rng.Copy Destination:=ws2.Range("B10")
Else
    MsgBox "Nothing found"
End If

現在會發生什么?

  1. Dim ws1, ws2 As Worksheet

ws2被聲明為Worksheet ws1被聲明為Variant 更改為

Dim ws1 As Worksheet, ws2 As Worksheet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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