检查相似值 VBA Excel

Check for similar values VBA Excel

我正在 Excel vba 中开发这个宏,它将遍历从 a 到 z 排序的一列客户名称,并检查哪些相似并将它们分配相同相邻列中的客户端 ID。我正在使用 Like 运算符来比较名称,但出于某种原因,它没有发现名称之间的相似性。例如,我想让它认为 Aetna 和 Aetna Medicaid 是同一件事,因为它们都包含 Aetna。我不确定这个操作员是否打算这样做,如果不是,最好的方法是什么。我已经粘贴了下面的代码。它处于初步阶段,所以现在它只输出 MsgBox 而不是分配客户端 ID。此外,该范围由一个函数定义,该函数仅将其设置为一列范围。任何帮助将不胜感激!

Function SetInternalClientID()

Sheet9.Activate

Columns("J:J").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Set rng2 = FindHeader("CLIENT NAME", Sheet9.Name)

Count = 0

For i = 73 To rng2.Rows.Count

ClientCheck = rng2.Cells(i, 1).Value Like rng2.Cells(i - 1, 1).Value

If ClientCheck = True Then

MsgBox (rng2.Cells(i, 1) & " Like " & rng2.Cells(i - 1, 1).Value)

Else

MsgBox (rng2.Cells(i, 1) & " NOT LIKE " & rng2.Cells(i - 1, 1).Value)

End If

Next i


End Function

豪猪说得对。您将需要使用通配符,例如 ?和 * 在字符串的开头、结尾或中间。如果两个字符串包含相似的文本,我也会考虑使用 instr() 来 return 一个值。

Like 运算符经常被混淆。它不只是检查两个字符串是否匹配。相反,Like 运算符左侧的值是要针对运算符右侧的模式进行测试的字符串。 String_To_Test Like Pattern

话虽如此,表达式如下: "Aetna Medical" Like "Aetna" 会 return 正确,但 "Aetna" Like "Aetna Medical" 会 return 错误。