String 类似字符串VBA
我正在尝试使用like运算符比较VBA中的类似字符串,但无法进行比较。我希望函数看到ESI Clinical Operations和ESI Commercial Custom/HIX是相同的,因为它们都是从ESI开始的。但出于某种原因,它不会这样做。要做到这一点,我最好的选择是什么?提前谢谢String 类似字符串VBA,string,vba,excel,comparison,similarity,String,Vba,Excel,Comparison,Similarity,我正在尝试使用like运算符比较VBA中的类似字符串,但无法进行比较。我希望函数看到ESI Clinical Operations和ESI Commercial Custom/HIX是相同的,因为它们都是从ESI开始的。但出于某种原因,它不会这样做。要做到这一点,我最好的选择是什么?提前谢谢 Function SetInternalClientID() Sheet9.Activate Columns("J:J").Select Selection.Insert Shift:=xlToRigh
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
Pattern = Left(rng2.Cells(i - 1, 1).Value, 6)
If Pattern = "Blue S" Or Pattern = "BCBS o" Then
Pattern = Right(rng2.Cells(i - 1, 1).Value, 7)
ElseIf Pattern = "Health" Then
Pattern = Left(rng2.Cells(i - 1, 1).Value, 8)
End If
ClientCheck = rng2.Cells(i, 1).Value Like Pattern
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 & " " & Pattern)
End If
Next i
End Function
我在下面添加了一些代码,这些代码应该可以帮助您完成这个过程。它是一个UDF,它使用
字符串参数检查并将其与模式进行比较。代码将模式拆分为单个单词,并检查是否在文本中找到了这些单词中的任何一个
我担心它会返回假阳性。很明显,您正在制作医疗/保险电子表格。“临床”(例如)一词是否可能在不同的行中重复出现多次?[安泰临床、ESI临床等]更好地定义匹配的术语可能是有益的
Function Modified_Like(strTextToCheck, strPattern) As Boolean
Dim strArray() As String
Dim bFound As Boolean
strArray = Split(strPattern, " ")
bFound = False
For Each itm In strArray
If InStr(1, strTextToCheck, itm, 1) > 0 Then
bFound = True
Exit For
End If
Next itm
Modified_Like = bFound
End Function
没有模式,你不能像使用那样使用!你的模式是什么@Philip?@JLILIAman在这种情况下应该是ESI。我已经用我正在使用的函数编辑了我的问题。我使用子字符串函数来确定一个模式,但是对于上面问题中提到的两个较长的字符串,我没有得到任何匹配。我如何着手解决这个问题?rng2中有公式吗?
Function Modified_Like(strTextToCheck, strPattern) As Boolean
Dim strArray() As String
Dim bFound As Boolean
strArray = Split(strPattern, " ")
bFound = False
For Each itm In strArray
If InStr(1, strTextToCheck, itm, 1) > 0 Then
bFound = True
Exit For
End If
Next itm
Modified_Like = bFound
End Function