通过 Excel 中的一个关键字连接一列中的不同行数

Concatenate varying number of rows in one column by one keyword in Excel

你能帮我理解如何将一堆记录的所有行连接在一列中,但行数不同,并由指示第一行的关键字描述,如 'File*#' 吗?一个例子:

1   file# x  stuff...  
2   more stuff  
3   more stuff.   
4   file# x   stuff...  
5   more stuff  
6   File #    stuff  
7   File#   stuff

谢谢!

可能有更好的方法,但我认为这对你有用:

Sub Test()

Dim r As Range
Dim i As Integer
Dim lRow As Long
Dim x As Variant
Dim arr() As Variant
Dim aSht As Worksheet

Set aSht = ActiveSheet
Set r = ActiveSheet.Range("A1")
i = 1
Do While r <> ""
    If Left(r.Offset(i, 0), 6) = "File #" Or r.Offset(i, 0) = "" Then
        x = r.Resize(i, 1).Value2
        ReDim arr(1 To UBound(x, 1))
        For lRow = 1 To UBound(x, 1)
            arr(lRow) = x(lRow, 1)
        Next
        If aSht.Cells(aSht.Rows.Count, 2).End(xlUp).Value = "" Then
            aSht.Cells(aSht.Rows.Count, 2).End(xlUp).Value = Join(arr, ";")
        Else
            aSht.Cells(aSht.Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Join(arr, ";")
        End If
        Set r = r.Offset(i, 0)
        i = 1
    Else
        i = i + 1
    End If
Loop

End Sub

注意:一个文件必须至少有 2 行。换句话说,第 1 行是 File...,第 2 行是 stuff。每个文件行必须开始:File (space) #。我可以让它更灵活,但它会工作得很好。