Объединить столбцы текста? - PullRequest
0 голосов
/ 11 апреля 2020

Я относительно новичок в VBA и столкнулся с чем-то, что мне не удалось выяснить: у меня есть список элементов в столбце A и соответствующие местоположения в столбце B. В столбце много повторяющихся элементов. A, и я пытаюсь найти способ консолидировать эту электронную таблицу, чтобы в A не было повторяющихся элементов и все местоположения, в которых каждый элемент находится в одной ячейке столбца B и разделены ", ". т.е. если A2=A3=A11 я бы хотел, чтобы вывод был текстом А2 в столбце А и:

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

в столбце Б. (Я надеялся опубликовать картинку, чтобы сделать это более ясно, но у меня нет этого права, так как я здесь новичок, дайте мне знать, если я не совсем что-то понимаю. Любые указатели в правильном направлении, чтобы начать меня в этом, были бы очень благодарны - заранее спасибо!

1 Ответ

0 голосов
/ 11 апреля 2020

Попробуйте это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...