将行组合在一起以过滤

时间:2015-12-10 13:34:38

标签: excel vba filter grouping rows

我已经四处搜索,但到目前为止还没有解决方案。 我有这个带有随机数据的excel文件。数据由黑色边界分隔,但中间可以有任意数量的细胞。最好看看包含的文件。 我想过滤这些数据,但不知道如何将黑色寄宿生之间的行组合在一起....有什么方法可以做到这一点?

我的档案: http://we.tl/UhDJxsqaL1

编辑: 如果我尝试按“A”列过滤,值为“18xxxxxx” 然后我得到图像上方的内容,我想得到图像底部的所有值:

http://s28.postimg.org/6x09tb9t9/koncano.png

1 个答案:

答案 0 :(得分:0)

我的方法是复制并过去由边框分隔的A列的值。 然后,您可以轻松地按照自己的意愿进行过滤。

这是代码:

Sub test()


Dim Lastrow As Long

Lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row


For i = 2 To Lastrow

        If Not IsEmpty(Range("A" & i)) Then

            Copy_Cell_To_Border i

        End If


Next i

End Sub

子程序:

   Sub Copy_Cell_To_Border(ByVal i As Integer)

    Dim cell As Range
    Dim r As Long

Set cell = Range("A" & i)


    r = 0

    Do
        r = r + 1
    Loop While cell.Offset(r, 0).Borders(xlEdgeTop).LineStyle = xlNone

    If r > 1 Then
        cell.Copy
        Range(cell.Offset(1, 0), cell.Offset(r - 1, 0)).PasteSpecial xlPasteValues

         If IsEmpty(Range("A" & i - 1)) Then
            Range(cell.Offset(-1, 0), cell.Offset(r - 1, 0)).PasteSpecial xlPasteValues
        End If
    End If


End Sub

最终结果: enter image description here