【问题标题】:Grouping using VBA macro使用 VBA 宏进行分组
【发布时间】:2015-08-07 22:38:07
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这应该可以帮助您入门。它将通过查找您的部分名称来定义每个范围,然后对这些范围进行排序。

    ' 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
    

    【讨论】:

    • 嗨,邦德,非常感谢您的回复。这工作正常,我有我的数据分组,但在我的列下方存在差异,其中顺序不正确,即原始报告输出 AAA、BBB、DDD、CCC - 每次生成原始报告时都会更改.我已将数据放入二维数组(文本存储在第一列,行存储在第二列)按行(第二列)排序的最佳方法是什么?
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    相关资源
    最近更新 更多