代码之家  ›  专栏  ›  技术社区  ›  user3198603

如果数据相同,是否合并两行特定列?

  •  0
  • user3198603  · 技术社区  · 6 年前

    我的意见如下

    enter image description here

    我需要如下输出

    基本上,如果数据与公式相同,如何只合并A列的相邻值?这是一张大床单。我想应用公式使任务自动化。

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   JohnyL    6 年前
    Sub G()
    
        Dim x&, start&, bottom&
        Application.DisplayAlerts = False
    
        '// Start from row two
        '// In your sample it's value "Text1"
        x = 2
    
        While Not IsEmpty(Cells(x, 1))
    
            '// "start" designates the start row with new text (see below)
            start = x
    
            '// As soon as we defined start row with new text, it's time to define the last row.
            '// Cells(x, 1) - is new text value
            '// SearchDirection:=xlPrevious means that search must be done from bottom of sought range
            '// This also means that no extra data must be under your data.
            '// So, this way we can get to know full range.
            '// For single distinct value the start and bottom will be the same row.
            bottom = Range("A:A").Find(Cells(x, 1), SearchDirection:=xlPrevious).Row
    
            '// Having start and bottom rows,
            '// we can get full range with new text by using Resize property.
            '// It sets new number of rows and columns having top-left cell as a start point.
            Cells(start, 1).Resize(bottom - start + 1).Merge
    
            '// The next cell after bottom cell is new value.
            x = bottom + 1
    
        Wend
    
        Application.DisplayAlerts = True
    
    End Sub