我想要比较两个字符串。我想要的功能基本上是:
(1)检查两个字符串是否完全匹配
(2)如果匹配,则返回TRUE
(3)如果它们不匹配,则返回两个发散的字符串的位置
例如:
Cell A1:Barack Obama
细胞A2:Barack Obana
我知道这两个字符串不匹配,错误是" n"在" Obana"。因此,错误发生在A2中的字符串位置10。我希望函数返回10。
我的尝试:
= IF(EXACT(A1,A2)," MATCH",?? (搜索(A1,A2,1))??
谢谢!
答案 0 :(得分:1)
以下VBA功能如何:
Function MatchOrDiverge(BaseString As String, ComparedString As String)
If BaseString = ComparedString Then
MatchOrDiverge = "MATCH"
Else
For i = 1 To Len(BaseString)
If Not (Mid(BaseString, i, 1) = Mid(ComparedString, i, 1)) Then
MatchOrDiverge = i
Exit Function
End If
Next i
MatchOrDiverge = Len(BaseString) + 1
End If
End Function
这需要2个字符串作为输入。首先,它检查2个字符串是否相同。如果是,则返回" MATCH"。
如果2个字符串不相等,则循环遍历BaseString并根据ComparisonString检查其字符。当角色不匹配时,它会返回该角色的索引。
如果字符串匹配,但第二个字符串更长(例如," cat"" cattle"),则返回BaseString + 1的长度。
屏幕截图:
答案 1 :(得分:1)