晚上闲逛EXCEL的VBA时,发现一个叫filter的函数很不错,自己以前写的一大堆代码,用这个函数替代的话,简洁非常之多,特写一段示例,,与大家分享一下。
很多财会或文员,经常会输入产品名称或客户名称等要求一字不差的项目,此时如果像google一样可以渐近式搜索并列出符合条件的条目,则会使工作轻松不少。本例并不是完整的实现代码,但稍加更改就可以用到实际工作中。
‘以下是代码————————————————————————–
‘功能:
‘ 在文本框输入筛选的条件 , 下方的列表框将自动列出符合条件的条目
‘说明:
‘ 1.因为是示列,条目的来源固定为一个纵向的单元格区域(命名为”VS”)
‘ 2.按每个词筛选,且不分词的位置前后,各词之间以空格或*号分隔
‘ 3.未对初始状态作处理,所以初始列表为空白
‘ 4.要测试本代码,请新建一个工作薄,在sheet1上的某列上输入条目,并将该区域命为”VS”
‘ 并添加文本框”textbox1″及列表框”listbox1″,然后将代码粘贴到sheet1的代码窗口
Private Sub TextBox1_Change()
OnChange TextBox1.Text
End Sub
Private Sub OnChange(ByVal cCondition As String)
On Error GoTo errh:
Dim SourceData As Variant ‘条目来源
Dim Condition As String ‘筛选条件
Dim conditions() As Str