创建自动过滤器搜索框

时间:2019-07-26 11:01:08

标签: excel vba

我正在尝试创建一个搜索框,该搜索框根据在输入框中输入的字符串来过滤数据。我不想基于单个列进行过滤,而是希望搜索整个表(当前为A8:AK700,但将来可能会更改)。

我有一个在单个列上工作的搜索功能,并相应地过滤了数据,然后我尝试创建一个循环来搜索另一列,但这会删除所有数据,因为我相信它会寻找所有匹配项列。

Sub Filter()
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

    Dim strName As String, LastColumn As Long, StartCell As Range, Si As Integer 'String Name
    Si = 1
    Set sht = Sheets("Contract History")
    Sheets("Contract History").Select
    Set StartCell = Range("A8")

    'Find Last Row and Column
    LastRow = StartCell.SpecialCells(xlCellTypeLastCell).Row
    LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column
    sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
    'Search Function
    strName = InputBox("What would you like to search for?")

    Do
        Selection.AutoFilter Field:=Si, Criteria1:="=*" & strName & "*", Operator:=xlAnd
        Si = Si + 1
    Loop Until Si = 37
End Sub

作为示例,我想搜索韩国,它在“客户”,“位置”或“来源”列中显示包含韩国的所有数据行。目前我得到0个结果

0 个答案:

没有答案