VBA一对多模糊查询简单代码

VBA一对多模糊查询简单代码_第1张图片

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

 

你可能感兴趣的:(ExcelVBA,ExcelVBA练习)