我正在尝试创建一个搜索框,该搜索框根据在输入框中输入的字符串来过滤数据。我不想基于单个列进行过滤,而是希望搜索整个表(当前为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个结果