2

我想以自动方式(通过使用宏)在我的 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 中做到这一点吗?

4

1 回答 1

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

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

于 2013-08-09T13:25:18.710 回答