关于用EXCEL里面的VBA编写模糊匹配功能

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:19:55
If ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value Like ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value Then
ThisWorkbook.Worksheets("sheet1").Cells(1, 3).Value = "yes"
Else
ThisWorkbook.Worksheets("sheet1").Cells(1, 3).Value = "no"
End If

代码如上,发现运行后的结果是,只有cells(1,1)完全等于cells(1,2)才会显示yes,123和1123也是显示的no,那样就不是模糊匹配了。请问是哪里出问题了
如果ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value的长度小于ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value,就不适用了

用 instr(1,ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value,ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value)<>0 不就OK了

加上长度判断

if len(ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value)>len(ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value) then
if instr(1,ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value,ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value)<>0 then

end if
else
if instr(1,ThisWorkbook.Worksheets("sheet1").Cells(1, 2).Value,ThisWorkbook.Worksheets("sheet1").Cells(1, 1).Value)<>0 then
end if
end if

Sub xx()
If WorksheetFunction.Find([a1], [b1]) Then
[c1] = "yes" '如果a1是b1的子字串,则匹配成功
Else
[c1] = "no"
End If
End Sub

关注 有答案收藏