我的 sub 比较两个字符串列表并返回最接近的匹配项。我发现潜艇被一些常用词绊倒了,比如“the”和“facility”。我想编写一个函数,该函数将提供一组单词以排除并检查这些单词的每个字符串,如果找到则排除它们。
这是一个示例输入:
|aNames | bNames | words to exclude
|thehillcrest |oceanview health| the
|oceanview, the|hillCrest | health
预期输出:
|aResults |bResuts
|hillcrest |hillcrest
|oceanview |oceanview
到目前为止,我有:
Dim ub as Integer
Dim excludeWords() As String
'First grab the words to be excluded
If sheet.Cells(2, 7).Value <> "" Then
For y = 2 To sheet.Range("G:G").End(xlDown).Row
ub = UBound(excludeWords) + 1 'I'm getting a subscript out of range error here..?
ReDim Preserve excludeWords(0 To ub)
excludeWords(ub) = sheet.Cells(y, 7).Value
Next y
End If
然后我的比较函数使用双循环将 A 列中的每个字符串与 B 列进行比较。在比较之前,a 列和 b 列中的值将通过我们的函数,该函数将检查这些单词是否要排除。可能没有要排除的词,所以参数应该是可选的:
Public Function normalizeString(s As String, ParamArray a() As Variant)
if a(0) then 'How can I check?
for i = 0 to UBound(a)
s = Replace(s, a(i))
next i
end if
normalizeString = Trim(LCase(s))
End Function
这段代码中可能有几个部分不起作用。你能指出我正确的方向吗?
谢谢!