使用VBA宏进行分组

时间:2015-08-07 13:42:24

标签: excel vba excel-vba

我正在使用Excel 2010,我想使用VBA对数据行进行分组。我将循环遍历每一行以确定组的起点和终点。 A列是我要开始的地方。如下所示,我有10行。我的第一组的开头应该是"AAA"。该组将接收所有行,直到"BBB"。下一组将从"BBB"开始,并将下面的所有行都收录到"CCC"。第3行将从"CCC"开始,接收下面的所有行,并在遇到空白行时停止。在给定组标题的情况下,分组应采用任意数量的行。一旦我有了这些,我想对每个组中的行进行排序,然后使用条件格式。

你能帮忙分组吗?从哪里开始?

   A
 1 AAA
 2 ROW CONTENT
 3 ROW CONTENT
 4 BBB
 5 ROW CONTENT 
 6 CCC
 7 ROW CONTENT
 8 ROW CONTENT
 9 
10

1 个答案:

答案 0 :(得分:0)

这应该让你开始。它将通过查找您的节名称来定义每个范围,然后对这些范围进行排序。

' Array of section names...
Dim a As Variant
a = Array("AAA", "BBB", "CCC", "")

Dim i As Long, intStart As Long, intEnd As Long
For i = 0 To UBound(a) - 1

    intStart = Range("A:A").Find(a(i)).Row
    intEnd   = Range("A:A").Find(a(i + 1)).Row - 1

    With Sort
        .SetRange Range(Cells(intStart, 1), Cells(intEnd, 1))
        .Header = xlYes
        .Apply
    End With

Next