
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then Call LikeSearch '当变更单元格为F2时,执行模糊查询
End Sub
Sub LikeSearch()
Dim RowMax As Long '定义B列最大行序号
Dim RowIndex As Long '定义B列循环中行序号
Dim NewRowIndex As Long '定义E、F列取值行序号
Sheet1.[E6:F65536].ClearContents '清除E、F列内容
RowMax = Sheet1.[B65536].End(xlUp).Row '获取B列最大行序号
NewRowIndex = 6 '赋值6为E、F列起始行序号,原因是模板制作的时候就是从第6行开始的
'循环匹配是否满足要求,满足要求则将C列值提取到F列中
For RowIndex = 3 To RowMax
If Sheet1.Range("C" & RowIndex) Like "*" & Sheet1.[F2] & "*" Then '当循环至C列当前行序号单元格内容包含F2单元格内容时
Sheet1.Range("E" & NewRowIndex) = NewRowIndex - 5 '将查询顺序列到E列中
Sheet1.Range("F" & NewRowIndex) = Sheet1.Range("C" & RowIndex) 'A列当前单元格填充到F列对应单元格中
NewRowIndex = NewRowIndex + 1 '填充后F列行序号+1
End If
Next
End Sub