[英]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
嘗試這個。
將field:=17
替換為field:=1
。 您的范圍是一列,因此字段應為1
。
還替換行.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
現在會發生什么?
Dim ws1, ws2 As Worksheet
僅ws2
被聲明為Worksheet
。 ws1
被聲明為Variant
。 更改為
Dim ws1 As Worksheet, ws2 As Worksheet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.