使用instr获取两个文本的完全匹配

时间:2015-03-11 07:35:09

标签: vba excel-vba excel

我如何完全匹配InStr函数中的两个文本?

现在我的代码如下所示

If InStr(1, arrcallpara(i), strvarcalll) > 0 Then
  blncalling = True
End If

arrcallpara(i)包含值" 1234"或" 12345"或" 1234567"和strvarcalll包含" 1234567"

"如果"只有在arrcallpara(i)和strvarcalll之间存在完全匹配时才应满足条件。

2 个答案:

答案 0 :(得分:2)

为什么要使用InStr?您可以使用=轻松检查2个字符串是否匹配。

无论如何,让我们说你以某种方式被迫使用它,我会首先检查第二个是否包含一个字符串,然后如果第二个包含在第一个字符串中。应该这样做,但要完全确定你还可以检查长度是否相等:

If InStr(1, arrcallpara(i), strvarcalll) <> 0 And InStr(1, strvarcalll, arrcallpara(i)) <> 0 And Len(arrcallpara(i)) = Len(strvarcalll)

答案 1 :(得分:0)

您可以使用StrComp

If StrComp(arrcallpara(i), strvarcalll) = 0 Then

或只是普通的=

If arrcallpara(i) = strvarcalll Then

但更重要的是,你的If是不必要的混乱。只是说:

blncalling = (arrcallpara(i) = strvarcalll)

blncalling = (StrComp(arrcallpara(i), strvarcalll) = 0)