簡體   English   中英

用戶選擇運行時錯誤1004上的Excel VBA AutoFilter

[英]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 ,而是Criteria1Criteria2如果你使用第二個! 所以在這種情況下你不需要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.

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