Excel-合并具有相同前缀的字符串单元格

问题描述 投票:0回答:1

我在 excel 列中的值很少,如下所示。

如果两个单元格的值如

CalculateZeroValue
CalculateZeroValueBusinessArea
都包含相同的前缀
CalculateZeroValue
,我只想保留一个单元格值。

这是我对上述值的预期输出。

我尝试了

IF
EXACT
SEARCH
功能,但无法实现目标。非常感谢任何帮助。

excel vba excel-formula excel-2010
1个回答
0
投票

如果我理解正确,运行子程序之前的数据如下所示:

忽略颜色,只是为了表明每个颜色中较长的文本版本需要被删除。所以结果看起来像这样:

Sub test()
Dim rg As Range, cell As Range, c As Range

With ActiveSheet
Set rg = .Range("A2", .Range("A2").End(xlDown))
End With

For Each cell In rg
    If cell.Value <> "" Then
        Set c = rg.Find(cell.Value, lookat:=xlPart)
            If Not c Is Nothing Then
                If Len(c) > Len(cell) Then
                    c.ClearContents
                Else
                    Set c = rg.FindNext(c)
                    If Len(c) > Len(cell) Then c.ClearContents
                End If
            End If
    End If
Next

rg.SpecialCells(xlBlanks).EntireRow.Delete

End Sub

rg变量是A列数据的范围,中间不能有空行

然后它循环到 rg 中的每个单元格,使用循环单元格值在 rg 中搜索作为 c 变量。如果 c 不是什么,它检查找到的单元格值(c 变量)的字符长度是否大于循环单元格值的字符长度,然后它清除找到的单元格(c 变量)的内容。

否则,它会使用 find-next 方法进行第二次检查。它再次检查第二个找到的单元格值(c 变量)的字符长度是否大于循环单元格值的字符长度,然后清除找到的单元格(c 变量)的内容。

最后它删除了 rg. 中空白单元格的整行

© www.soinside.com 2019 - 2024. All rights reserved.