0

列BにData1/Data2 / Data3-1/Data3-7などのデータがあると仮定します。他のすべての行にはさまざまなデータがあります。

その列B(一部はそうでない場合もあります)を持つ各行を取得し、個々の値ごとに1つの行を作成し、行内の他のすべてのデータをそれらすべてにコピーする必要があります。

データには記号、ダッシュ、その他のランダムなものが含まれる場合がありますが、実際のデータ自体には/は含まれず、分割線を指定するために/のみが使用されます。

Any1はこれを行うための最良の方法を知っていますか?Excel07とOOが利用可能です。

4

1 に答える 1

2

VBA ソリューションは問題ありませんか?

Sub DuplicateRows()
    Dim r As Range

    Set r = Cells(Rows.Count, 2).End(xlUp)

    Do While r.Row > 1
        TestRow r
        Set r = r.Offset(-1, 0)
    Loop
    TestRow r


End Sub

Sub TestRow(r As Range)
    Dim i As Long, n As Long
    Dim a() As String

    i = InStr(r, "/")
    If i > 0 Then
        n = Len(r) - Len(Replace(r, "/", ""))
        r.EntireRow.Copy
        r.Offset(1, 0).Resize(n).EntireRow.Insert Shift:=xlDown
        a = Split(r, "/")
        For i = 0 To n
            r.Offset(i, 0) = a(i)
        Next
    End If
    Application.CutCopyMode = False
End Sub
于 2012-06-15T21:26:15.993 に答える