如何在VBA中提取两个单元格的相似语句并保留空格?
提取两个单元格中的相似语句并保留空格的VBA实现
需求是提取两个单元格内的相似语句,且保留语句本身的空格,示例如下:
A1单元格内容:book by me, show by me
A2单元格内容:show by me, book by me
你提供的原代码会删除所有空格,无法满足保留语句内空格的要求,以下是修正后的可用代码:
Function DupeWord(str1 As String, str2 As String) As String Dim vArr1 As Variant Dim vArr2 As Variant Dim vTest As Variant Dim lngCnt As Long Dim result As String ' 按", "拆分字符串,保留语句内的空格 vArr1 = Split(str1, ", ") vArr2 = Split(str2, ", ") On Error GoTo strExit ' 遍历第一个数组的所有语句 For lngCnt = LBound(vArr1) To UBound(vArr1) ' 在第二个数组中查找匹配项 vTest = Application.Match(vArr1(lngCnt), vArr2, 0) If Not IsError(vTest) Then result = result & vArr1(lngCnt) & ", " End If Next lngCnt ' 处理结果,去除末尾多余的", " If Len(result) > 0 Then DupeWord = Left(result, Len(result) - 2) Else strExit: DupeWord = "No Matches!" End If End Function
代码说明:
- 直接以
,作为分隔符拆分字符串,避免删除语句内的空格,确保每个数组元素都是完整的带空格语句 - 遍历第一个单元格拆分后的所有语句,通过
Application.Match在第二个单元格的语句数组中查找完全匹配项 - 匹配到的语句会被追加到结果字符串,最后去除末尾多余的
,分隔符 - 如果没有找到任何匹配语句,返回
No Matches!
内容的提问来源于stack exchange,提问作者jayant mahadik
相关产品推荐
相关产品推荐

