Sql 如何根据VBA中另一列的值合并文本字符串?

Sql 如何根据VBA中另一列的值合并文本字符串?,sql,excel,vba,Sql,Excel,Vba,我是VBA和MS Excel的新手,请原谅我的无知。 我试图创建一个宏,检测a列中的每个唯一名称,合并B列中与该名称关联的所有注释,并将其分隔在新行上 名称和注释的数量会有所不同,这就是我在VBA中查看宏的原因。我是否也需要包含SQL才能使其工作 我所拥有的: 我想要的是: 老实说,我不知道你为什么想要这个。Excel最适合您当前的设置(“我拥有的”屏幕截图)。例如,您可以筛选约翰·史密斯,查看他的所有评论。各种其他excel公式和函数都需要像您当前一样的设置,以便正确计算。您需要转换数据的具

我是VBA和MS Excel的新手,请原谅我的无知。 我试图创建一个宏,检测a列中的每个唯一名称,合并B列中与该名称关联的所有注释,并将其分隔在新行上

名称和注释的数量会有所不同,这就是我在VBA中查看宏的原因。我是否也需要包含SQL才能使其工作

我所拥有的:

我想要的是:


老实说,我不知道你为什么想要这个。Excel最适合您当前的设置(“我拥有的”屏幕截图)。例如,您可以筛选约翰·史密斯,查看他的所有评论。各种其他excel公式和函数都需要像您当前一样的设置,以便正确计算。您需要转换数据的具体原因是什么?最初的项目是将每个单元格值映射到一个可填充的PDF表单上。这一部分已经完成,因为它只包含整数,但要求也已经更改为包含文本字符串。
Sub Macro1()

    Dim lngCount As Long
    Dim lngLastRow As Long
    Dim rng As Range, cll As Range
    Dim str As String

    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A1").CurrentRegion
        .Header = xlYes
        .Apply
    End With

    lngLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Set rng = Range("A2:A" & lngLastRow)

    lngCount = 2
    str = str & Range("B2").Value & vbNewLine

    For Each cll In rng
        If cll.Value = cll.Offset(1, 0).Value Then
            str = str & cll.Offset(1, 1).Value & vbNewLine
        Else
            Range("C" & lngCount & ":C" & cll.Row).MergeCells = True
            Range("C" & lngCount) = Left(str, Len(str) - 1)
            str = cll.Offset(1, 1).Value & vbNewLine
            lngCount = cll.Row + 1
        End If
    Next


End Sub