1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 提取两个字符串中最长相同部分的自定义函数

提取两个字符串中最长相同部分的自定义函数

时间:2022-01-23 16:53:22

相关推荐

提取两个字符串中最长相同部分的自定义函数

要求比较两个字符串,并把这两个字符串中最长相同部分提取出来,不区分大小写。如下图所示,“字符串1”和“字符串2”为原始数据,“最长相同部分”为待提取的结果(为了看得更清楚些,已把相同部分用红颜色标出了)。

自定义函数如下(收录时作了部分修改):

Function XiangTong(s1, s2, OptionaldxxAs Boolean=False) As String

"功能:提取两个字符串中最长相同部分

"参数s1、s2:为需要比较的两个字符串或单元格

"参数dxx: 是否区分大小写

"dxx = False,默认值,不区分大小写

"dxx = True,区分大小写

"为提高效率,设置长度小的字符串作为s1

If Len(s1) > Len(s2) Then s = s2: s2 = s1: s1 = s

k = IIf(dxx, 0, 1)

n = Len(s1)

For i = n To 1 Step -1

For j = 1 To n - i + 1

z = Mid(s1, j, i)

If InStr(1, s2, z, k) Then

XiangTong = z

Exit Function

End If

Next

Next

End Function

调用方法如下:

1、不区分大小写的:

在C2单元格输入公式:

=XiangTong(A2,B2)

或:=XiangTong(A2,B2,False)

或:=XiangTong(A2,B2,0)

并向下拖动到最后一个单元格。

2、区分大小写的:

在C2单元格输入公式:

=XiangTong(A2,B2,1)

或:=XiangTong(A2,B2,True)

并向下拖动到最后一个单元格。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。