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のパッケージ)の2つのグループにします。

問題は、データが変化する可能性があることです(たとえば、1.0でグループ化(含める)する必要がある1.0.7を指定したデータの追加)

したがって、列Aのすべてのフィールドを読み取り、すべてのフィールドの最初の3文字を比較して再グループ化する必要があります。したがって、同一のものをグループ化します。

VisualBasicでそれを作ることは可能ですか?

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 に答える