首页 > 解决方案 > 基于具有重复值的另一列合并和居中单元格

问题描述

我想根据另一列中的重复值合并和居中一列中的值。

下面是一个例子:

在此处输入图像描述

我想要以下结果

在此处输入图像描述

任何帮助,将不胜感激

谢谢

标签: excelvbamerge

解决方案


您可以使用Dictionaryobject 来存储要合并的单元格地址以及合并它们的Union()and方法:Merge()

Option Explicit

Sub MergeThem()

    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    Dim cel As Range
    For Each cel In Range("A1").CurrentRegion.Columns(1).Cells
        dict(cel.Value) = dict(cel.Value) & cel.Offset(, 1).Address(False, False) & ","
    Next

    Application.DisplayAlerts = False
    Dim key As Variant
    For Each key In dict.keys
        Union(Range(Left(dict(key), Len(dict(key)) - 1)), Range(Left(dict(key), Len(dict(key)) - 1))).Merge
    Next
    Application.DisplayAlerts = True


End Sub

推荐阅读