![](/img/trans.png)
[英]Run-time error 1004 with Range.Autofilter in Excel VBA 2016
[英]Excel VBA AutoFilter on user selection run-time error 1004
我有一個包含2張(“內容”和“文件夾”)的Excel 2010工作簿。
此工作簿的目的是按供應商或參考編號跟蹤不同的工作,前端(內容頁面)易於使用,僅包含按鈕和搜索框(實際上並不是單獨的)框,但只是用戶輸入的內容表(以下稱為J8)的單元格J8的內容。
按鈕將按供應商類型進行過濾(並且工作完全正常),但這是我遇到問題的用戶選擇。
我的宏代碼是:
Sub Find_Click()
Dim userSelect As String
userSelect = "*" & Range("J8") & "*"
Sheets("Folders").Select
ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2, Criteria:=userSelect, Operator:=x1And
End Sub
按下“查找”按鈕時,應該讀取J8,然后選擇“文件夾”表並過濾結果以顯示包含J8中文本的B列中的每個條目。
這工作正常。 但是,現在當我嘗試使用此宏時,我得到了一個1004運行時錯誤,其中包含“應用程序定義或對象定義的錯誤”消息。
有人可以幫忙嗎?
編輯:
包含按照以下格式分配的宏的“包含”按鈕:
Sub Button1_Click()
Sheets("Folders").Select
ActiveSheet.Range("$A$1:$A$5000").AutoFilter Field:=1, Criteria1:= _
"Criteria"
Set r = Range(Range("A3"), Range("A3").End(xlDown))
j = WorksheetFunction.CountA(r.Cells.SpecialCells(xlCellTypeVisible))
'MsgBox j
If j = 0 Then
MsgBox "There is currently no work relating to Criteria"
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("A3").Select
Sheets("Contents").Select
End If
End Sub
還有一個resest按鈕,用於清除過濾器並返回到“內容”表:
Sub Reset_Click()
ActiveSheet.ShowAllData
Sheets("Contents").Select
End Sub
通常,您需要激活要使用AutoFilter
的范圍內的單元格。
此外,當您嘗試將AutoFilter與通配符( *
或?
)或數學測試一起使用時,您需要在條件字符串的開頭添加=
,所以
userSelect = "=*" & Range("J8") & "*"
然后,它不是Criteria
,而是Criteria1
和Criteria2
如果你使用第二個! 所以在這種情況下你不需要Operator
。
最后使用ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2
,您要求代碼過濾只有一列的范圍的第二列!
因此,如果要對col B進行過濾,只需將Field:=2
更改為Field:=1
這是工作代碼:
Sub Find_Click()
Dim userSelect As String
Dim wS as Worksheet
userSelect = "=*" & Range("J8") & "*"
Set wS = Sheets("Folders")
wS.Activate
wS.Range("B1").Activate
If Not wS.AutoFilterMode Then wS.AutoFilterMode = True
wS.Range("$B$1:$B$5000").AutoFilter Field:=1, Criteria1:=userSelect
End Sub
而你在xlAnd
也有一個拼寫錯誤,它是x1And
;)
對於任何有興趣的人來說,問題最終都存在於問題中:
ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2, Criteria1:=userSelect
由於代碼只過濾了B列,因此Field值需要設置為“1”而不是原來的“2”
感謝@ R3uK的寶貴幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.