首页 > 解决方案 > 合并文本列?

问题描述

我对 VBA 比较陌生,并且遇到了一些我无法弄清楚的事情:我在 A 列中有一个项目列表,在 B 列中有相应的位置。A 列中有很多重复的项目,我我试图找到一种方法来合并此电子表格,以便 A 中没有重复的项目,并且每个项目位于单个 B 列单元格中并由 . 分隔的所有位置", "。即,如果A2=A3=A11我希望输出是 A 列中 A2 的文本,并且:

=B2 & ", " & B3 & ", " & B11

在 B 列中。(我希望发布一张图片以使这一点更清楚,但由于我是新来的,所以没有这个权利,如果我不清楚某些事情,请告诉我。任何指向正确方向的指针让我开始这将不胜感激 - 在此先感谢!

标签: excelvba

解决方案


尝试这个:

Sub repeat()
    Dim ws As Worksheet, columnB As String
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    ws.Range(ws.Cells(2, 1), ws.Cells(Rows.Count, 1).End(xlUp)).Copy Destination:=ws.Cells(1, 100)
    ws.Range(ws.Cells(1, 100), ws.Cells(Rows.Count, 100).End(xlUp)).RemoveDuplicates Columns:=1
    For i = 1 To ws.Cells(Rows.Count, 100).End(xlUp).Row
    ws.Range("A:B").AutoFilter field:=1, Criteria1:=ws.Cells(i, 100)
    For Each Bcell In ws.Range("B2:B" & ws.Cells(Rows.Count, 2).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    columnB = columnB & ", " & Bcell
    Next Bcell
    For Each Acell In ws.Range("A2:A" & ws.Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    Acell.Value = Acell.Value & columnB
    Next Acell
    columnB = ""
    Next i
    End Sub

推荐阅读