Excel 动态搜索 vba 代码

Excel 动态搜索 vba 代码

通过这个 Excel 的 VBA 宏,当我输入整个单词时,我会得到即时搜索过滤器,但我希望如下:当我输入Oopel 时,我得到的是已经显示的 opel。

这是代码:

Sub MG26Nov26
Private Sub TextBox1_Change()
Dim Ray As Variant
If Len(TextBox1.Value) = 0 Then
    Sheet1.AutoFilterMode = False
    Else
        If Sheet1.AutoFilterMode = True Then
            Sheet1.AutoFilterMode = False
        End If
    Ray = Split(TextBox1, "+")
    Sheet1.Range("A2:F" & Rows.Count).AutoFilter field:=1, Criteria1:=Ray, Operator:=xlFilterValues  
    End If

End Sub

这是测试文件:

https://drive.google.com/open?id=1KDwE2jT_u35wPhd5dR7Xi3X31ddzXDNx

答案1

为了解决这个问题,您可以使用下面编写的 VBA 代码。

Private Sub TextBox1_Change()
Dim Ray As Variant
If Len(TextBox1.Value) = 0 Then
    Sheet1.AutoFilterMode = False
    Else
        If Sheet1.AutoFilterMode = True Then
            Sheet1.AutoFilterMode = False
        End If

    Sheet1.Range("A2:F" & Rows.Count).AutoFilter field:=1, Criteria1:="*" & TextBox1.Text & "*", Operator:=xlFilterValues
    End If

End Sub

注意:Criteria1:="*" & TextBox1.Text & "*"这是我在 VBA 代码中对变量所做的更改Ray

相关内容