自动重组数据

时间:2012-09-11 12:54:25

标签: excel excel-vba vba

我想以自动方式在Excel中对数据进行分组(使用宏) 例如,在我的专栏A中,我有字段掖好:

    A1中的
  • 我有“1.0.1”,
  • 在A2“1.0.3”中,
  • 在A3“1.0.5”中,
  • A4中的
  • “1.1.1”,
  • 在A5“1.1.2”中。

我想将这些数据分组,以便有两组:1.0(包装A1,A2和A3)和1.1(包装A4和A5)。

问题在于可以变化的数据(例如,添加一个给定的1.0.7,在1.0中需要分组(包括))

因此,有必要阅读A列的所有字段,并通过比较每个字段的前3个字符进行重组,以便对相同的字符进行分组。

可以在Visual Basic中实现吗?

1 个答案:

答案 0 :(得分:0)

sub regrouper()
  Worksheets.Add.Name="group1"
  Worksheets.Add.Name="group2"
  Dim g1Row As Integer
  Dim g2Row As Integer
  Dim splitter(0 to 4) As String

  g1Row = g2Row = 2

  For Each cell in Worksheets(1).Range("A1:A" & Range("A65536").End(xlup).Row)
    splitter = Split(cell.text, ".")
    If splitter(1) = 0 then
      Worksheets("group1").Range("A" & g1Row).Value = cell.Value
      g1Row = g1Row + 1
    ElseIf splitter(1) = 1 then
      Worksheets("group2").Range("A" & g2Row).Value = cell.Value
      g2Row = g2Row + 1
    Else
      MsgBox("data not in group 1 or 2")
    End If
  Next cell
End Sub

未经测试但应该让你更近一点