Excel - 将所有值与行中指定的相同编号连接起来

时间:2016-10-27 22:07:14

标签: excel vba excel-vba

不知道从哪一步开始 - 基本上这是我的问题。

我需要创建一个函数或宏,它可以在行中连接所有具有相同数字的值。

我在工作时使用员工名单,每个员工都有成本中心。

enter image description here

我需要的是能够将12510 + 13030等旁边的所有名称连接到他们自己的单元格中。

任何帮助都将不胜感激。

编辑:我已经尝试了所有简单的事情,简单地说是手动连接值。成本中心代码附加了多个人,我想将具有该成本中心编号的每个人的价值连接到类似于=Concatenate(A1, " ", B1)等的一个销售中

1 个答案:

答案 0 :(得分:0)

这应该可以帮到你:

Option Explicit

Sub ListCentreCostNames()
    Dim empNamesRng As Range, ccRng As Range, ccCell As Range, cell As Range
    Dim names As String

    With Worksheets("centrecost") '<--| change "centercost" to your actual worksheet name
        Set ccRng = .Range("C1", .Cells(.Rows.Count, "C").End(xlUp))
        Set empNamesRng = Intersect(.Columns(2), ccRng.EntireRow)
        With .UsedRange
            With .Resize(1, 1).Offset(, .Columns.Count + 1)
                With .Resize(ccRng.Rows.Count)
                    .Value = ccRng.Value
                    .RemoveDuplicates Array(1), Header:=xlYes
                    For Each ccCell In .SpecialCells(xlCellTypeConstants)
                        ccRng.AutoFilter field:=1, Criteria1:=ccCell.Value
                        If Application.WorksheetFunction.Subtotal(103, ccRng) - 1 > 0 Then
                            names = ""
                            For Each cell In empNamesRng.Offset(1).Resize(empNamesRng.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
                                names = names & cell.Value & " "
                            Next cell
                        End If
                        ccCell.Offset(, 1) = names
                    Next ccCell
                End With
            End With
        End With
        .AutoFilterMode = False
    End With
End Sub