![Excel 动态搜索 vba 代码](https://linux22.com/image/1575771/Excel%20%E5%8A%A8%E6%80%81%E6%90%9C%E7%B4%A2%20vba%20%E4%BB%A3%E7%A0%81.png)
通过这个 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
。