2017-07-18 76 views
0

我有下面的代碼基於什麼輸入到文本框中的過濾器。這適用於字符串,但它不適用於整數搜索。任何想法我可能做錯了什麼?VBA過濾器(搜索整數值)

Private Sub TextBox1_Change() 
On Error Resume Next 
metin = TextBox1.Value 
Set bul = Range("a4:a10").Find(What:=metin) 
Application.Goto Reference:=Range(bul.Address), Scroll:=False 
Selection.AutoFilter field:=1, Criteria1:=TextBox1.Value & "*" 
If metin = "" Then 
    Selection.AutoFilter 
End If 
End Sub 

回答

1

在開始處添加Range("a4:a10").NumberFormat = "@"。使用數字,Excel會嘗試比較值,而不是字符串中的數字表示。因此,它試圖完全匹配:)與該行它將數字序列視爲字符串,並將應用字符串比較。最終的代碼如下:

Private Sub TextBox1_Change() 

Range("a4:a10").NumberFormat = "@" 

On Error Resume Next 
metin = TextBox1.Value 
Set bul = Range("a4:a10").Find(What:=metin) 
Application.Goto Reference:=Range(bul.Address), Scroll:=False 
Selection.AutoFilter field:=1, Criteria1:=TextBox1.Value & "*" 
If metin = "" Then 
    Selection.AutoFilter 
End If 
End Sub 

爲了優化起見,你應該某處設置範圍格式這種方法之外,所以你不必做的每一文本框已經改變一次。

+0

謝謝你,但找到函數之前? –

+0

嗯嘗試完全是你寫的,但它仍然不會找到列中的數字返回沒有結果 –

+0

我想我理解我的錯誤,但問題是,它必須是搜索的確切數量?我的意思是,如果我想搜索123我必須鍵入123而不只是12有沒有辦法做到這一點? –