簡體   English   中英

Excel VBA 2016 中 Range.Autofilter 的運行時錯誤 1004

[英]Run-time error 1004 with Range.Autofilter in Excel VBA 2016

我的代碼是

With ActiveSheet
   .AutoFilterMode = False
   .Range("23:23").AutoFilter
End With

這在 Excel 2010 中工作正常,但在 Excel 2016 中我得到:-

Range 類的運行時錯誤“1004”自動篩選方法失敗

此外,我可以手動單擊功能區中的過濾器圖標(在數據 > 過濾器下),但不能使用 VBA 代碼執行此操作

任何想法都非常感謝。

當您嘗試按空行進行過濾時,自動AutoFilter會出現1004錯誤。 嘗試在第23行放一些東西並像這樣再次過濾它:

Public Sub TestMe()    
    With ActiveSheet
       .AutoFilterMode = False
       .Range("23:23").Cells(1) = 1
       .Range("23:23").Cells(2) = 2
       .Range("23:23").AutoFilter
    End With

End Sub

如果它有效,那么您在第 23 行中根本沒有值,因此它無法應用自動過濾器。


通常,Excel 中的AutoFilter有一些奇怪的行為。 例如,如果您打開一個新的 Excel 文件並運行以下代碼:

Public Sub TestMe()

    With ActiveSheet
       .AutoFilterMode = False
       '.Range("23:23").Cells(1) = 1
       '.Range("23:23").Cells(2) = 2
       .Range("23:23").AutoFilter
    End With    
End Sub

它會給你1004錯誤。 讓我們稱這個時間勢頭為FirstTime

然后,如果您取消對這兩個范圍的注釋並運行它,則會出現AutoFilter

現在奇怪的部分 - 從工作表中刪除所有單元格,對這兩個范圍進行評論,它看起來真的像它在FirstTime時的樣子 但是,如果您運行該代碼,它將毫無問題地在空的第 23 行上放置一個自動過濾器。

刪除現有文件管理器並再次運行

暫無
暫無

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

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