使用VBA将具有相似数据的列排序到同一行中

使用VBA将具有相似数据的列排序到同一行中,vba,excel,excel-formula,excel-2010,Vba,Excel,Excel Formula,Excel 2010,我正在尝试使用最简单的方法合并包含类似数据的行,但我认为这需要一些VBA。如果有人能给我指出正确的方向那就太好了 我试图实现的一个例子是: NAME | AGE| AREA John | 32 | Portsmouth Will | 32 | Portsmouth Matt | 28 | Southampton Dave | 32 | Portsmouth Phil | 28 | Southampton Tony | 25 | Winchester 变成: AGE| AREA

我正在尝试使用最简单的方法合并包含类似数据的行,但我认为这需要一些VBA。如果有人能给我指出正确的方向那就太好了

我试图实现的一个例子是:

NAME | AGE|   AREA    
John | 32 | Portsmouth
Will | 32 | Portsmouth
Matt | 28 | Southampton
Dave | 32 | Portsmouth
Phil | 28 | Southampton
Tony | 25 | Winchester
变成:

AGE|   AREA      | Name 1 | Name 2 | Name 3 |
32 | Portsmouth  | John   | Dave   | Will   | 
28 | Southampton | Matt   | Phil   |        |
25 | Winchester  | Tony   |        |        |
编辑:我已经成功地将我需要的内容堆积在一起,但是它似乎将不重复的数据放在了同一列中,而不是我首选的
Name 1 | Name 2 | Name 3
是否有更新此内容以填充单独的单元格而不是相同的单元格的想法

以下是最新消息:

Sub mergeCategoryValues()
    Dim lngRow As Long

    With ActiveSheet
        Dim columnToMatch As Integer: columnToMatch = 2
        Dim columnToConcatenate As Integer: columnToConcatenate = 1

        lngRow = .Cells(65536, columnToMatch).End(xlUp).Row
        .Cells(columnToMatch).CurrentRegion.Sort key1:=.Cells(columnToMatch), Header:=xlYes

        Do
            If .Cells(lngRow, columnToMatch) = .Cells(lngRow - 1, columnToMatch) Then
                .Cells(lngRow - 1, columnToConcatenate) = .Cells(lngRow - 1, columnToConcatenate) & "; " & .Cells(lngRow, columnToConcatenate)
            .Rows(lngRow).Delete
            End If

            lngRow = lngRow - 1
        Loop Until lngRow = 1
    End With
End Sub
执行此操作时:

If .Cells(lngRow, columnToMatch) = .Cells(lngRow - 1, columnToMatch) Then
你希望进入这种状态吗?
如果lngRow之前设置为7,columnToMatch为1,除非单元格(7,1)和(6,1)具有相同的信息,否则它不会做任何事情。

没有人会为您编写代码,因此我不清楚您的要求是什么,请说
为我指出正确的方向。在这种情况下,
正确的方向是什么?如果你不知道任何VBA,你可以雇佣一名自由职业者,但如果你知道一些,展示你解决问题的尝试,然后告诉我们什么不起作用,以及你到底被困在哪里。目前,您的问题与堆栈溢出无关。请参阅以获取信息。对于您的困惑,我深表歉意,但按照正确的方向,我并不是指有人为我完成这项工作。只需给我指出一些需要研究的地方或一些需要研究的函数,这样我就可以编写自己的代码了。尽管我并不自称了解VBA,但我最终还是可以找到解决方案。要求我们推荐或查找工具、库或喜爱的非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作谢谢你通知我,经过一些挖掘和整理,我已经更新了这个问题,使其看起来更合适。对不起,我从web上提取了一些代码,但忘了更新它以适应我的问题。现在,我已将
column的值更改为match
的正确列。您如何删除
“;”
分隔符,而将合并的数据放在单独的列中?@Giles您可以执行以下操作: