使用VBA将摘要表中的同步数据分组

时间:2013-10-23 19:55:38

标签: excel vba excel-vba count summary

我有一个ID列(A)和一列可变数据(B),如下所示。

    A    B
    1    0.1
    2    0.1
    3    0.1
    4    0.2
    5    0.3
    6    0.3
    7    0.2
    8    0.3

我需要生成一个VBA代码,该代码对这些数据进行分组,以便汇总表如下所示:

    Start ID    End ID    B Value
    1           3         0.1
    4           4         0.2
    5           6         0.3
    7           7         0.2
    8           8         0.3

我是Excel VBA的新手,我在编写可以执行此操作的短代码时遇到问题。我所包含的数据也只是示例的第一部分,代码需要能够为任意数量的ID创建摘要。非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

这段代码有点丑陋而且很脏,但它会起作用:

假设:

  • 您的值从单元格B2开始,其相应的ID从A2
  • 开始
  • 您的摘要表以E2
  • 开头
  • 您的数据集少于50行

根据需要更改所有内容)

    Sub CreateSummaryTable()

    Dim cl As Range
    Dim StartCl As Range
    Dim TableRow As Integer

    Set StartCl = Range("B2")
    TableRow = 2

    For Each cl In Range("B2:B50")
        If cl.Value <> StartCl.Value Then
            Range("E" & TableRow).Value = StartCl.Offset(0, -1).Value
            Range("F" & TableRow).Value = cl.Offset(-1, -1).Value
            Range("G" & TableRow).Value = StartCl.Value

            Set StartCl = cl
            TableRow = TableRow + 1
        End If
    Next

    End Sub