You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:02:15