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