输入时自动筛选符合条件的条目(渐进式搜索)

  • Post author:
  • Post category:其他


晚上闲逛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



版权声明:本文为bluewinding原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。